/agdg/ - Amaeture Game Dev General

Arm Chair Game Dev General

Substitute OP - Copy-pasta'd the last thread before it fell off the catalog

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

IRC:
#8/agdg/ on rizon.net

Other urls found in this thread:

valgrind.org/docs/manual/cg-manual.html#cg-manual.overview
github.com/SheridanR/BSDL
permadi.com/1996/05/ray-casting-tutorial-table-of-contents/
p.trumpshare.com/swk5/rw76.zip
fabiensanglard.net/duke3d/build_engine_internals.php
wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Generic_Distro/CMake
open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf
twitter.com/SFWRedditVideos

Slowly going through GameFromScratch's Godot tutorial. Work has left me so fatigued I can only get through about 1 video per day because it's so hard to focus. Have some images that inspired me to pursue game development in my spare time.

...

...

Sauce on the first two images?

4th image triggers my autism

The image for the first one is from a Pixiv artist whom I don't know the name of, and the images of that series were adopted by cuckchan for a /tg/ game. Here's more images from that series if you're interested.
No idea on the second one

Thanks user! Will Happily jerk off the the feet from the first pic! :3

...

something is fugged with the water height on the 3rd pic

retopo progress

Might make it to the good stuff tonight

a new screenshot, this level was made by the robo-waifu game dev

Keep up the good work, booby-demon guy

Is the level editor easy to use, sigma senpai?

Let your dubs give you progress, dear user.

no. its very, very hard to use. it lacks every single convenience feature in CAD software that you take for granted without thinking about it. It crashes at random. The code is unmaintainable. Sometimes windows tells me the heap is corrupted after its done compiling.

I wrote the code for it almost a year ago, and i didn't know much about memory safety back then.

**i feel bad about letting him use my map editor and know a kind of
suffering that should be reserved for me and me alone**

So is this just a huge exercise in frustration?

Making a promotional game for a pizza place. God, I hate touch screens.

its a punishment. a punishment for being lazy and writing bad code.

Are there any good Data Oriented Design tutorials to take you through the basics or should I just read up on it like I have been and then try to make a small project following those principles and see how I go?


Why does this Mare have tits? Where did you get the idea for the design? Is that a horse skull?

Data oriented design is, at its core, writing code and structuring data in such a way that's easy for the processor to use. Learn how a processor reads in data and how it handles it. Write some programs that try to follow those principles, and then run them through profiling tools such as cachegrind to see how well you did.

valgrind.org/docs/manual/cg-manual.html#cg-manual.overview has instructions on how to use cachegrind and how to see how badly your program actually holds up to those design principles.

Profile your code, keep previous versions and compare the statistics of different versions. It's no good saying you've got good data oriented code if it runs slower for whatever reason.

And lastly, do not prematurely optimize your program. Write a complete implementation of the program, then profile it to find where it's slow, and address those areas.

As to tutorials, it's really a problem specific thing. Your project's data and how you use it is different to someone else's, and so their design may screw up performance of your project. If anything, I'd recommend the processor programming manuals, specifically the i386 and AMD64 ones, since they're likely what you're targeting and the SIMD extensions to them are probably going to make the biggest benefit to your program if you can use them right.

So I think I've figured out a reasonable solution to my issue with vertices and quads and buffers and shit… Each quad of a map tile takes 4 vertices, so all 6 faces would take 24. I can just store all those in an array per tile. There isn't really a way to batch them ahead of time because each vertex will either have differing positions or texture coordinates (but all from the same texture). I actually have to do 2 passes, because of how I plan to layer textures, so it would actually be 48 vertices per array.

Anyways, because the storage is detached and tile-based, I can just index all the arrays and render the exact ones I need (basically a rectangle from the player's position and direction) by throwing them all into a buffer… Not sure how many buffers to keep in a cache though. Either way, I'd do one pass of verts 0-23, change the texture, and do a second pass of 24-47. I can actually work on things now

Thanks.

None of that is going to show up on the final normal map, unless it's like 8192x8192 or you do a separate (still large) one for the skull and another for the body as a lot of people do (for more detail in the face, where the player tends to focus, rather than the body).

Pretty productive day

I didn't do much better.

I coded an attack that chains to multiple targets if you successfully execute an action command. Except I didn't code the action command part in yet, so right now the number of chains is hardcoded. Other than that I mostly did cleanup because I couldn't think of anything new to work on. Been having motivation issues lately.

Jesus christ slow down user are you trying to carpal tunnel

Literally the only new code in it is the part that makes it chain to a new target after hitting the first one. It isn't as much as it sounds like.

it looks that Tetradev is one tough motherfucker


I think I am slowly but surely getting a hang of this mocap thing.

You know you could make mocap anims for specific sorts of themes and sell them on the UE4 and possibly unity marketplaces and make some decent money.

epic meme
mocap?

this is a video of the cool MAP EDITOR i made for the game wich i am making right now ;> its a 2d tile-based game

what does /agdg/ think of it?

Motion capture. A process of animation whereby an actor performs an action and it's captured by a computer through some method, usually cameras tracking markers placed on the actor. You can then clean up the resulting animation and you've got a high quality animation that required a lot less time and effort to generate than keyframe animation would.

A company in Australia does similar things for sports science research using an array of radio transmitters around a sports field and markers on the athletes, so it's not just cameras.

i know what mocap is, but how did you do mocap?

hey what can you do, when you are drunk, showing your "studio" to friends and recording for fun, while trying to perfect the process, even stale old shit seems funny. But that pirouette is damn sexy, isn't it?


The thing is called iPi markless mocap. As the name says, it doesn't use markers, just video data. That causes some hiccups and quirks that don't usually happen with traditional mocap (supposedly it's very hard to make animations when thea ctor is close to the ground, like when prone), but as you could probably tell, it's something that can be dealt with with satisfying results.

I am using 6 PS3 cams and 2 move controllers, paid around 70 USD for that. I don't think that's too steep a price for mocap until I'll have to pay for the actual software licence.


This is the current idea, making porn would be far too soul-blackening for any of us. Might pay for making actual PROGRESS on the main project. And in Unity the animations are sold as mecanim packages, so it will be a chance to learn that.

reposting vids from last thread

Consider using an index buffer. It saves you some bytes of video memory. Although if you don't want to deal with the fact that you can have at most 65536 vertices in a single vertex buffer, that's fine. You could ofc use integer indices instead and fix that. But it's up to you if the memory gains are worth the added code complexity. Also, if you place the tiles along a hilbert curve instead of row or column-major, you should be able to relatively easily compute a range of tiles to render and be able to draw everything with a single drawcall. Alternatively, you could just draw the entire map every frame. I don't know how many verts your map will consist of, but even if it's 10 000 verts it's probably better to do so. The GPU will cull any triangles outside of the clip space (and clip any overlapping) so while you'd be redundantly performing vertex transforms on all verts, you're not evaluating any extra fragments. In general, keep in mind that it may be more trouble than it's worth to try to drawn only exactly the visible geometry.

Can someone tell me any reason why I shouldn't use Godot if I'm making a 2D game?

If I try to render more than one object in WebGL (a different buffer, with a different Vertex Array Object) I get the message "no VBO bound to enabled vertex attrib index 0".
What do I do?

use your nearest search engine, kek

None of the results describe my specific problem.

so i got bored and did a utility tool for yugioh
you write your deck in a text file, as well as a list of combos (cards you'd need in your hand to do something)
the program reads the deck, and then checks a number of hands to see if there are working combos
so for an example now, i'm checking 40 hands, and 13 times there were no possible combos. meaning that my deck is shit, or that i haven't bothered to enter all the possible combos
the text file starts with the deck, and once it reaches a ";" it starts reading the combos
next step in improvements would be to make it recommend which cards to remove based on some kind of priority, and also to store the results in a text file, since the console window starts removing stuff if i print too many things

Anyone has good reference for low poly hand topology?

I wanted an enemy design related to dreams, someone told me when I was young that "nightmare" comes from a myth about female horses standing on you in your sleep, and I didn't bother to google it until much later, so I made it a demon looking horse with tits.
Then I researched the folklore a bit more and added some ideas from European myths about Maras and Alps, which didn't clash too badly with the original design.

Or I can just give more UV space to the skull. That, plus the carvings will be a dark color on the diffuse, like pic related, where they're filled with ink.

unity is throwing out hundreds of "SUCCEEDED" errors at me when the game isn't even running

kill me

There's no one size fits all hand topology, Satan.
Just keep at least two loops per joint, and don't do things like that badly stretched quad you've got there.

congratulations, you beat unity

I'm going to fucking give up

what did you make until now?

A platformerengine

...

you faggots will never EVER make a game.

fun fact: the people who make games solo just make them and release them, because they dont spend their entire day in here arguing about programming languages or posting sofahnny/agdg/ memes.

face it, you don't have the talent. try another hobby.

i agree
what's your point?

I tried to use godot but python makes my autism implode.


I bet you'd use source engine.

...

...

it has to do with the editor GUI
Turn unity/IDE on and off again, and it'll stop.

This week in Speebot: bouncy buoys

JUST
how would you move a 2d kinematic body in godot? I must be doing something wrong if the camera won't follow it

What's wrong with Source?

post code

It's nearly two decades' worth of bullshit on top of the Quake engine to make it look presentable, like a gigantic tower of ducttape. If you have your heart set on a BSP engine then you're better off using one of the id Tech engines and adding the features you want on top of it rather than trying to deal with Source's gigantic mess.

Can anybody tell me what's wrong with my code, everytime I pass the array to the function it crashes.

#include #include #include #define TILE_WALL 1#define TILE_FLOOR 2#define HEIGHT 50#define WIDTH 50int GenerateRand(int a);void FillDungeonRand(int MapArray[HEIGHT][WIDTH]);void CellularAutomata(int MapArray[HEIGHT][WIDTH]);void PrintMap(int MapArray[HEIGHT][WIDTH]);int main(void){ srand(time(NULL)); int DungeonMap[50][50]; FillDungeonRand(DungeonMap[50][50]); CellularAutomata(DungeonMap[50][50]); PrintMap(DungeonMap[50][50]); return 0;}int GenerateRand(int a){ return rand()% a + 1;}void FillDungeonRand(int MapArray[HEIGHT][WIDTH]){ for(int x = 0; x

The kinematic body has this in it, and something for moving down, left and right too.

if Input.is_action_pressed("player_up"):
move_to(Vector2(0,-10))

Then as a child to that is a sprite and a camera2d.

The player seems to be stuck inside the drag margin because it can't move anymore, though i can change the size of the invisible box it's stuck in by changing the drag margin.

While we're on topic of BSP engines, what's the most efficient modern way of storing and rendering game map data in games? Not BSP, judging from your response?

You're not passing the fucking array, you're passing the element (50, 50) of the array which doesn't fucking exist.

Still crashes.

int main(void){ srand(time(NULL)); int DungeonMap[50][50]; FillDungeonRand(DungeonMap); CellularAutomata(DungeonMap); PrintMap(DungeonMap); return 0;}

That's because you iterate from 0 to 50, while the array indices range from 0 to 49, 50 in total.

Also, what kind of a fucking bullshit compiler you're using that even allowed you to compile the previous version of your code.

It didn't, it's because I reverted to the previous changes in the IDE and pasted the wrong code here.

I don't know at this stage, although from what I've gathered it really depends on the hardware you're targeting and what kind of game you want to make. My personal favourite is Sauerbraten/Tesseract's method of storing level geometry as an octree because of how easy it makes prototyping levels, but the engine has issues with models shaking on larger map sizes so it's only practical for arena shooters at the moment.

While on the topic of BSP, does anyone have any good articles for moving from grid based raycaster to non-grid based?

What kind of raycaster do you want? Keep in mind that neither Doom nor Duke actually use raycasting.

I'm mostly curious to see how they're implemented to see if it's worth me trying to do. Right now I'm just aiming for a simple one like textured walls, ceiling, floors, different wall heights and so on but if non-orthogonal walls aren't excessively complicated I'd like to do them too.

How decent is my curve?

Take a look at this one: github.com/SheridanR/BSDL
It is grid-based, though, but it has pretty much everything you said.

Thanks, I'll have a gander through it.

Does anyone know a shader based AA technique that's easy to implement like FxAA but that doesn't suck like FxAA?

permadi.com/1996/05/ray-casting-tutorial-table-of-contents/
There's also this tutorial series, but it's old as shit and might not have everything you want.

does it look alright? it's driving me crazy.

We think that youtube embed is cancer, sigma-kun.

Lost my sides with this array editing, holy shit

How the fuck do your lights work? Do you even do shit like distance attenuation and Lambertian shading? Or do you just trace a bunch of rays and calculate the darkness based on how many light sources it reached?

I altered one line on my template AI class about a week ago.

...

Also, you're passing the array by value. So not only will your changes not be reflected in the calling frame, you're copying 10000 bytes. Read about pointers (or references, same thing).

It's sad. I read this thread, and it gives you insight into how fucking clueless AAA devs are

The world is fucking unfair.

Linked wrong thread, meant to do

I have been using both an index buffer and a vertex buffer for my draw calls so far. Because everything is quad based with its own texture coordinates, I can't really instance them and have to use a triangle list, rather than a strip

Is there away to buffer multiple polygons with different textures in OpenGL, and just draw it? I kinda want to do something like Visleafs in source, and just buffer then draw my chunks of the map. However, I don't know how to do it without switching textures constantly.

I've stopped working on my game temporarily to make a mod to add children to RimWorld. Currently I've detoured only the graphics method so toddlers can still use all kinds of firearms. Heh.

Not.

If you want to do it in a single draw call, these are your options:
1. Use a texture atlas, but this means you lose the ability to repeat textures, and you'll have to be careful around edges in case of texture filtering.
2. Use a 2D_TEXTURE_ARRAY, which is basically an array of 2d textures of the same size. Then you can add a z coordinate to the vertices to indicate which layer it has to sample from.
3. Pass an array of textures to your fragment shader, then sample EVERY texture, but multiply with 0 for every texture that is not the one you actually want. (Although you may have an array of texture samplers in shaders, you may only use a constant index to access them. Your code will compile just fine if you use a variable, but this will sometimes result in graphics artifacts.)

Option 1 is a bunch of fuckery that suffers from texture bleed. In addition, you'll have to know what textures you want to use and make a texture atlas. (You cannot load extra textures as is needed. It all has to be on the same atlas.)
Option 2 is basically the same as option 1, minus texture bleed.
Option 3 is horribly inefficient.

...

So does everyone just have 10,000s of draw calls a frame?

Like when they chop a map up into leafs for culling. Say you have to cut a wall in half when making 2 leaves, does that wall now have 2 draw calls instead of just drawing the entire leaf each part is in with 2 draw calls?

No one?
I thought this place had lots of OpenGL/WebGL programmers.
Although it is a rather specific problem I guess.

Try binding a VBO to vertex attribute index 0

Inventory items can now be stacked.

It's going to be the RE4, spend hours organizing your inventory, autism in 3d.

No tutorial I've read gives much detail on usage of VBOs and VAOs, I don't know how to do that.
And it isn't an issue if there's only one buffer object and array object.
Maybe there's only meant to be one array object?

2 does have texture repeat.
It's just that 1 and 2 both require you to load ALL texture into a single bigass texture.

Yes, actually.
But lets not exaggerate, you probably don't have more than a few dozen draw calls if you group by texture where possible and apply proper culling.

Yes, but if you're not fucking retarded you wont overdo this.
Keep in mind that it is no coincidence what-so-ever that most maps in modern games are incredibly blocky; those kind of maps produce very big leafs, resulting in very little draw calls.


VAO also includes VBO bindings, in a certain way.
When building your VAO bindings, first bind your VAO, then your VBO, then do the bindings.

Have your compiler merge neighboring coplanar faces with the same material. Quake 3 kept its mesh and tree data separate just for this.
Having proper vis in a map with batching integrated into it will cut draws to less than 100.

In XNA (so, DirectX) how can I use a transparent texture as a clipping mask for another texture in 3D? Ideally this wouldn't involve custom shaders because I suck with them and want to keep it simple.

Thanks, that works!
Am I really supposed to have a VAO for every individual object though?
The code I've written supports it easily, I just stick a VAO inside the object, but I'm worried more about performance; and to me, it doesn't sound like the VAO stores any object-specific data between draw calls.

You use shaders.
Tough shit.

this was me in 2015… just a little over a year ago

Somehow I was autistic enough to learn the windows API, but retarded enough to make 100 little number input boxes instead of letting you click on the screen.

just got this cool error trying to compile a map… usually the maps will work anyway, so its just the stupid map editor again

meant for

Learn shaders, because you will need them for many things. Shaders are no harder these days than regular C code, it's feeding them to a given engine or library that's the shit part, as well as learning all the boilerplate you need to remember.

If you want the brick and the dick to be referenced by the same material, just use regular alpha clip. Alpha clip in a fragment program doesn't need to use precisely the base texture's alpha as input, another texture will work just as well.
But if you want to do this in screen space, an extra buffer will be needed. (usually the stencil buffer, but it can be any ol' render target if the hardware supports that, stencil buffers are simply more compatible)

It is. Why the fuck can't Visual Studio highlight shader keywords and shit

Are stencil buffers treated similarly to render targets or textures?

Because it seems like I could just draw my white/black (or whatever) masks to a texture, push that to a stencil buffer, and use it to clip my next texture passes?

C arrays decay to pointers, they can only be passed by reference.

That's what I'm going for.

You probably don't need a VAO for every individual object, if by "object" you mean "game object that can have the same model as another game object".

A VAO is a type of object that exists purely for optimization purposes.
When you want to draw something, you bind a shader, a VBO, and then do your bindings to explain to OpenGL how the VBO data maps to shader data.
The VAO object contains these bindings.
Note that you can actually feed a shader with multiple different VBO's at once, which is why you need to bind your VBO when performing bindings. (Basically: Assume that glVertexAttribPointer also copies whatever is the currently bound VBO into the VAO.) (This is a feature often used in instancing.)


Basically you need a VAO for every "model" or whatever you want to call your VBO('s)+shader combination. If multiple objects use the same VBO+shader+bindings, you can just reuse the same VAO.

That said, performance wise it wont matter whether you share VAO's between multiple objects or not. I recommend you just take the easy road and not give a fuck.

Yes, a stencil buffer is just an extra grayscale render target akin to a depth buffer.


Arrays are pointers. The name of an array is a reference to its [0] element, and the [n] just pushes the pointer forward by sizeof(x)*n

...

Because I can.

But can you bounce on shark? Looks very good.

I want to try something like this too, but instead of stacking like that, I want them to be all loose inside a backpack. Did you do it all in blueprints or did you write it?

Ah, that makes it nice and clear!

Meant for →

this is a new video of version 0.8, and a download if anyone wants to try it out.

p.trumpshare.com/swk5/rw76.zip

Okay so from what I've gathered

>GraphicsDevice has a DepthStencilState, but doesn't do anything with it

I thought I would be able to just adjust the SamplerState to draw a texture as a fully white on a black background, set the SamplerState again, but so that it observes the white as transparency, then draw the actual texture I want on top of the shape.

But thinking about it, it seems like that might be a problem because of 3D depth… it wouldn't make sense to set a render target or adjust the sampler state twice for every quad I want to draw.

Shit, I mean BlendState, not SamplerState

Wont the computer have fits constantly calculating a bunch of points of collision between everything in there?

stunlocking enemies seems too easy, they hardly ever manage to shoot

You'd only simulate physics when the bag was open, of course.

Once the backpack is closed, just unload the inside of the backpack and the only thing that changes is the characters weight, kinda like metal gear online. Easy, right?

Your picture sums up my experience

I started it in blueprints but it got really messy so I moved large sections of the logic to C++. At one point I thought about doing it with loose items but decided against it because I didn't want to have to worry about simulating physics. The current system doesn't use physics or built in collision detection instead it uses a custom form of collision detection that works really well for this but would be terrible for anything else, but is also much.
A while ago I made a mockup in Unity of a 2d inventory with loose, physics simulating, items. Never got very far with it, though, but I did save a video recording of it.

but is also much faster, I meant to say.

stunlocking stops being viable at later stages when you have to fight large amounts of enemies at once. Try playing "Command Center" to see what I mean.

I suppose it is pretty easy to stunlock, but the early stages are supposed to cut you some slack.

Arrays are not pointers. If they were, then sizeof(array) would be equal to sizeof(void*). Instead, sizeof(array) returns sizeof(type) * num_elements. They decay to pointers in most cases of using the array name.

Well that sucks. I was hoping to make my leafs double as optimization for my physics, but now that they have to be fairly big it wont be nearly as effective.


Seems like accounting for things that span multiple leafs is going to be a reoccurring issue. Is there a standard way to account for that or do I just have to figure it out?

you have to pass a pointer to the array, in order to use it as an argument or the return value of a function.

Nothing stops you from having separate leafs for physics and rendering.

Just use a prebuilt PVS. If in X volume, looking through Y portal, draw this bunch of faces. The end.

What do you mean by messy?

finally managed to add support to use finished dishes as ingredients for new dishes, will release new version tomorrow after testing

MOTIFUCKINGVATION
its sound only sorry

...

I move the exact same way in a different project and it works fine. I created a new project with just movement and it still has that issue. Why is this happening? This shouldn't be happening. There's no reason for it to be happening. The only thing that should be happening is my suicide.

Doing lots of logic and math in Blueprints can create some really messy looking code.

the node tree is set up differently, thats why

its not

Obviously the problem was fixed in your "different project"

different project is the same shit but older with more stuff going on, i just slapped a camera onto the player

not really fixed

More memory, more work, not as sleek. I guess that's what it's going to come down to though. Or I could just subdivide the physics components of extra large leafs.


I guess that'll work. I'm worried about dynamic props also, though.

Bumping and also I hope this doesn't look too obtuse

If your worried about it not making sense later, or to another person, add a comment explaining it.

I bet you don't end your textfiles in newlines either.

Got it working correctly on the first try, good feels.

Now do

It's okay user, I store all my raw game data in hex :^)

Other /agdg/ is garbage right now, so what do you guys think of this?

I made an Attribute in C# where I can put [MayNotBeNullAtLoad] above a field, and in the base class this code will test if any of the specified fields are null and disable the object. Rather than doing a bunch of individual tests.

I know the reflection to get the field infos that have the attribute isn't optimized, Ill cache it, just felt liek sharing

thats not hex.. thats ASCII text that corresponds to hex codes

That's the joke

This is shit, isn't it.
The jawbone is lacking too much definition as you move from near the ear towards the chin.

I can't seem to figure out a good way of fixing it without making some MAJOR deviations from the reference drawings I made, so perhaps it's back to the drawing board for me… (´・ω:;.:…

I said 'too much definition', I meant 'too little definition'.

Then look at skellingtons and jawbones to see what you're doing wrong.

If you are unable to use MSAA, use Temporal-AA / TXAA

I have never done this before in 3D. This was actually an accomplishment for me.

grats

var myEnumMemberCount = Enum.GetNames(typeof(MyEnum)).Length;

I usually can't complain about C# but this is a sin

Just from the shading I can tell the topology is fucky. Here's what mine looks like for reference.

looks pretty good

C# really should have better enum support. At the very least, you can create extension methods for enum types, so there's that

DUDE, don't give up! I need just such an engine for my own game! You're on to something here!

If you mean topology strictly in regards to how vertices are connected to each other, I don't think the topology on this is awful atm, if not sparse in areas for the time being. All-quad junctions, no triangles, just some poles.
Nice edge loops for mouth, nose, 'facemask', eyes, etc…

I'm not a professional modeler tho, feel free to call me out for being a gigantic faggot.

I tried lifting up vertices on the bottom of the jaw and it helped a fair bit with the lighting around the jawbone, maybe I'll model the hair before deciding to trash this whole thing altogether…

I don't understand

How would you get to items in the center after you've filled your inventory?

A team member asked the same question in a private chat so I'll just post what I told him.
But if you have other ideas for how I should do this I'm all ears.

Send me your projects and I'll see if I can figure it out.

I have a suggestion, do what you're describing, but also let the player use the up and down arrow keys (or d-pad or whatever) to quickly make the top layers "vanish" and reappear. Assuming you don't intentionally want people to have to move upper layer stuff out of the way to get to lower stuff, that is.

In fact, if you tilted the inventory pack towards the player's view a bit, you could avoid the ray cast entirely this way, and just keep track of whatever is the highest layer occupied by at least one item.
Just a suggestion.

Thanks, I'll consider this moving forward. Though if it's just an issue of camera angle like you said in your second post then it's an easy fix. I'll try out a bunch of different angles and see which one works best.

Could work. I'd definitely get some people to test it before you invest too heavily, to see if it's understandable/intuitive enough.

My biggest worry is that the inventory will be difficult to use or completely unintuitive. I really don't want to make it so that whoever plays the game has to spend 30 minutes with the inventory before they understand how to pick up and move objects, and I don't want to require the player to use a tutorial to learn how to use it. I want it to just werk.
I'll probably make a build of the game and hand it off to my team when the inventory prototype is finished.

One way of simplifying it may just be to have less tiles. If it was just 2x2 for XY you'd always be able to see an item by rotating the inventory around. That might keep it interesting with some 3D tetris aspect without being too cumbersome.

Whats a good culling and LOD algorithm for outdoors? I'm thinking like in stalker where you can see a large part of the base if you scope it out from a hill far away.

Earlier I was discussing OpenGL and BSPs in this thread, however I'm starting to see PVS and BSPs aren't really practical here.

Apparently a more modern way I dug up is Z-Hierarchy Culling. Vid-related

So when people say that C++ is hard, are they referring to the libraries or the memory tricks or what?
Coming from a background with a bit of C, this shit has been super easy to learn so far

'learning' a language is trivial
using it is less so

They're referring to the fact that the language doesn't slap your hand for being a retard. If you come from C, then you're already used to that and you just don't do retarded shit to begin with.

Part of it is shit advice telling people with zero experience to dive right into C++. Which usually equates to learning basic programming, C++, compiling and an IDE all together which can be very overwhelming. Plus more control meaning more ways someone can fuck things up.

welcome to procrastination island
it's taken me 2 months just to get this far, maybe in another 6 months ill have 2.5% of a game finished

Well, it's taken me like, an year to get to pic related, so I'd say you're doing fine.

you're doing fine, user

incidentally, my biggest fucking pet peeve is level scaling, particularly rewards. meaning taking on a difficult quest early on will give you a scaled down item that will be completely fucking useless in 30 minutes

user I think you're bit a slow

y-yeah, I am

C++ is C with objects and much easier to use dynamic memory (new instead of malloc).

Vertex normals don't matter for animu, it's common practice to override them entirely.

C++ has a lot of inconsistent behavior in regards on how you use the language, which can confuse people. On top of that, errors surrounding templates are fucking unreadable garbage that don't help in the slightest when you're just trying to instantiate an std object templated with your type.

These things make C++ a very beginner-unfriendly language.

I have never successfully set a programming environment that wasnt C# with Visual Studio

...

My idea for vehicle wrecks are these, once a enemy vehicle is destroyed it just leaves a wreck with some few smallish fancy effect going on when it is hit again for a few times it will burn but not forever through and it can be grinded into a heap. I have to fine tune that thing a bit and figuring out how to deal with special damage such as fire, biochemical and other shieet, then all those wrecks need individual reclaim value.

For cannon fodders Infantries it will have similar function hmm it kind of does already but I want to make it a bit less excessive with the only difference it you cannot reclaim it for credits.

Then I need to add a few more enemies for Cyberdemon and SpiderMastermind and the Map30 boss but I cannot think of any idea of what I should replace the Map30 thing maybe lenin himself :^)

Then later I need to really finish doing the Light Tank upgrades and the Incendiary/Acid shell.

I also procrastinated a bit by playing Old Good Stalker Evolution and Call of Chernobyl mod so eh.

d-did he unfucked my shit?

NEW VERSION RELEASED
>>>/agdg/28131

Spiciness and Mintiness aren't real flavors.
"Nutrients" is vague and should be relabeled to different vitamins or minerals.

I thought this was supposed to be as autistic as possible

That reminds me

Have you looked into SS13's recipe system?

After getting a chance to dig through some BSP and Build's sector approach, the way Build handles it really clicked in my head so I think I'm going to try that.

Didn't really understand that, but shouldn't you be using the y and z coordinate for a different axis?

The inventory isn't tiled.

No that's not the problem at all. I'm using XZ axes as my ground plane with Y as my height. I can walk and move around and look perfectly. There is no problem. Every step moves me 1 unit in either axis.

When I offset the camera by any amount of units, the Z axis gets flipped and I go off in random directions.

I mean spaces/size of items.

Ah, I see.

Build's renderer is simple as fuck, yet efficient enough. There's a video somewhere on Jewtube where a literal jew walks you through writing a Build-like portal-based renderer, yet I can't fucking remember the name of it or the channel where it's posted.

This one?

Ok this is also really weird


Culling is disabled. I should be able to see everything at all times. My camera isn't being offset here either.

Yes.

I had it set so that it was -Math.Sin() on the Z.

Yeah I watched that. fabiensanglard.net/duke3d/build_engine_internals.php also helped.

Do you want to go full software or are you going to just use sectors and portals for visible surface determination and render the actual polygons with OpenGL?

I know spiciness and mintiness aren't flavours, they are closer to pain reactions, but i couldn't leave it out
The nutrients are being vague as fuck for now because i haven't decided how many and which will be there in my game, i can change the number of nutrients very easily

Nope, is it good?

Is there enough aspects to create a "subflavor" for each main flavor? Minty, tangy, spicy, etc?

more flavours can be added, but i think 7 is already enough

There's only one flavor that matters, baby

Trying to avoid actual polygons. Right now I'm (probably stupidly) aiming to do it in lua/löve to see how far I can push it.

Making some placeholder sprites.
God bless the GODOT guys for making the cutout animation tools.
I didn't have to pay 300 bucks for motherfucking Spine Pro. fucking jews.

that reminds me, i gotta fix this bug

Perfect for a post 11/9 world

Got it working again

painting the chef

mama mia! that's-ah spicy meatball!

I don't know what I'd do without shitty, dank memes to brighten my day

boning the chef

...

         /⌒ヽ   ⊂二二二( ^ω^)二⊃        |    /             ( ヽノ         ノ>ノ      三  レレ

...

getting some Shingeki no Kyojin intro vibes, gotta have a webm of the meatball chef running with this song dubbed over it w/random zooming in and out.
Imagine it… attack on titan esque chef game, but instead of titans it's meatballs. MAMA MIA! Now THAT'S a SPICIE MEATBAL


my thoughts too user

what is the worst VCS and why is it git

because git's submodules are fucking retarded. nesting repositiories inside of eachother is a massive pain. Clone something that has multiple nested repos? Gotta clone each one individually. Did one of em update? Better remember what version you need (put that in a text file somewhere in the project)

It's even worse when you try to train a non-programmer team member to use GIT, they just don't understand how to use it properly, and would have no hope of being able to do all the steps as above to properly check out a complicated project with many other module dependencies.

Goys, whats a good engine for 2d that also supports multithreading?
I know godot just got multithreading, but there is hardly any documentation on it.

So what's the best alternative?

anything that doesn't shit itself for cryptic reasons while attempting to do the simplest of things, just because it feels like it

Seconding question.

I think I've about reached the apex of what I can do with Dropbox, Google Drive, etc..

That's rather vague.

There's Git GUIs that take the annoyance away, GitKraken is one I've used before and it works well.

As for submodules, there's the git submodule foreach construct that allows you to execute an arbitrary command on each submodule, as well as the update command for cloning missing submodules. Blender uses both to handle its submodules, as explained here wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Generic_Distro/CMake


If you're expecting non-programmers to use command line tools, then you, as a programmer, should wrap the tools in an easy to use interface like a shell script that they can just double click on to handle everything.

I'll give GitKraken a look, thanks.

no

SVN is probably best, much easier to use (Committing is the same as pushing in git, conflicts are much easier to resolve, Tortoise SVN has folder browser integration rather than command line.

Personally, I use both Git and SVN, but for different things.

I use GIT for actually storing submodules/library code, and SVN for storing projects. SVN will actually store the state of the GIT repo, making submodules/dependencies easier to work with.

I use Tortoise SVN as the client and VisualSVN as the server (Two separate applications), and use Tortoise GIT for the git client and host my garbage on github.


No. Terrible idea, I've tried this, and it always ends terribly, because there's some edge case the script can't cover.

GUIs are much easier for anyone (especially non-programmers) to use. TortoiseSVN/GIT are nice because they show basically all options in the folder browser (on right-click), and there's no need to memorize commands and parameters and stuff.

I did preface it with "easy to use interface", a shell script that just does one thing followed by "Success" or "Failure, bitch at programmer" is likely all the non-programmer needs. A GUI also fits the interface, and if it fucks up due to incorrect permissions or credentials, the user is probably gonna get as similarly retarded about it as when a script fails.

I assumed you meant giving them executable shell scripts a la batch files.

Might as well just teach them use software that's designed to do the task, rather than throwing stuff together ad-hoc for them. (Even with a good GUI like TortoiseGit, it's hard for non-programmers to learn to use it well enough to not screw things up, SVN is much simpler)

unity has multithreading for various parts of their engine.
Though, I'm assuming you mean implicit multithreading… by the engine itself, and not directly by you.

Got the day off tomorrow. Gonna get into godot and finally get past the baby engine familiartiy shit and start getting into the actual fucking game making part of GameFromScratch's tutorial

SVN is okay for vidyo gaems


No shell script will save the artfag when git decides it wants to merge something and DEMANDS that he write the message for a merge he didn't initiate using fucking vi of all things.

...

...

...

Hy /agdg/

just pitiching this idea to you, what do you think?

no

All graphics and music (which is not in the game yet anyway) is from Turrican 2, I'm just coding. I started with top down shooter, but decided to change it to a sidescroller, here is video of my first steps into that world. I need to make x-axis collision yet, you can walk through walls as it is now.

Why do you call him a jew ? He's from Finland.

there is loads of Hebrew stuff on the intro card, and he starts the video by saying "shalom"

he's a huge jew

...

stay out of my country you ungrateful faget

it's not that bad, some zones are relatively shitskins free

Isn't Italy one of the more uncucked populations.

those kind of patents don't really hold up and are pretty easy to get around

if you mean uncucked as in not sjw you are right
if you mean it as in not fucked up than you are completely wrong
italy is goddamn shithole the infrastructure is all kinds of fucked up and the people are generally assholes

also has videos where he talks about being a jew

Why not use move instead of move_to?
As far as I know move_to(Vector2(0,-10)) doesn't mean up, it means 10 pixels above the upper left corner.

uncucked in mind, cucked by geography and our government

some industrial areas are filled to the brim shitskins and there's more coming in every day

You can easily circumvent those patents in almost every case.

Loading screen patents can easily be avoided by simply not calling it a loading screen and giving the player a little bonus minigame in between levels that just so happens to take about as long as it takes to load the next level.

Enjoy the low prices on anime. Can get a fucking newly printed of copy of Evangelion in Italy for what is equivalent to $40 USD.
Meanwhile in the fucking US can only get a decade old print of the series for $100 USD.
Fuck the anime industry, this is why I make vidya in my spare time.

wheres the maekgaem resources for people who only have general prog understanding

or do I just wrangle that shit by hand like a steel coathanger

Got a chance to test how feasible it was going to be to draw individual pixels to a buffer then draw that with lua/löve. First off löve was freaking out with a 230,400 large lua table so instead I use FFI to create a pixel struct array which handles it fine. Luckily löve has imageData:mapPixel which passes a function along and applies to every pixel of an imageData object, so I can just look up the values I want to draw for each pixel, then finally refresh the actual image object created from imageData to draw.

Ends up just being a few percent of CPU usage which I think is acceptable. I'm not really worried that the actual sector/wall distance/etc logic is going to be computationally heavy, so looks like it will be feasible to do after all!

What are you even trying to do? I doubt you're actually drawing anything to a buffer if you're able to do that in real time.

I was just testing performance. I'm planning on doing something akin to Duke Nukem 3D/Build. I'm setting the pixels on imagedata from an array which will get populated based on what needs to get drawn, pushing that imagedata to the buffer then drawing it.

I changed it to move_to() from move() but it didn't do anything and I didn't change it back

Give me more information.
It's not easy to guess what you did wrong.

You could replace Joe Pesci or Danny De Vito after they die

...

I have given all the information there is in the project

Try to reproduce it by doing the following


if Input.is_action_pressed("player_up"):
move_to(Vector2(0,-10))

alright, i just failed a test in c++ because i couldn't successfully predefine my classes and their functions
here's an example
class A;class B{A objA;public:void funcB(){a->funcA();}};class A{public:void funcA(){}};
now this will give me erros saying something like "using undefined class A" or "thing left of ->funcA() must be class/struct/generic type"
how do i fix that?

The class is declared, but not defined. Which means that the compiler knows that there's a class A, but you can't do -> or . on it, or use it as a member of other classes, because the compiler does not know what's in the class or what size it has.
Just use headers. And, for fuck's sake, indent your fucking code.

funcB won't compile because

1. It declares a full non-pointer object A based on a forward declaration, which won't work, because the size that B needs in memory can't be determined without knowing the size of A, and also because construction of B depends on constructing A, which isn't known.
2. it uses a->funcA(), which hasn't yet been declared. You are also using deferencing on an object, which won't work here.

Forward declaration gives you the ability to do nothing except work with and move pointers (not even dereference them). In order to work with an object directly, you need its full definition beforehand.

The proper thing that will work is with proper definition and implementation. Here, A does not depend on B, so switching the order fixes it:

class A{ public: void funcA() { }};class B{ A objA; public: void funcB() { objA.funcA(); }};

Or, if you need forward declaration, fixing your objA to be a pointer, and separating declaration and implementation:

class A;class B{ A *objA; public: B(); ~B(); void funcB();};class A{ public: void funcA() { }};B::B(){ objA = new A();}B::~B(){ delete objA;}void funcB(){ objA.funcA();}

Note that you can work with pointers before you know the class, but to work with an object (including any kind of construction, destruction, or even dereferencing), you need the full definition.

Or you can just do this
class A { public: void funcA();};class B { ...}:void A::funcA() {}

That's supposed to be a semicolon. Fuck.

That's the same thing as my first code block. Separate implementation is usually a good thing for a lot of reasons, but it compiles down the same.

It does. I just thought that he's required to have the definition after B.

It is not required. The definition is required for compilation, and the implementation is required for linking. Sometimes you want a separate implementation from the definition to help with design/compiling patterns (and it is usually required for things with circular dependencies, such as A::foo() relying on B::bar() which relies on A::baz() or something of the sort), but you usually want it regardless, because it prevents future issues and helps keep a clean design. Forward declaration isn't usually required, but can be (such as when A needs a B member, which needs to also have an A member, essentially when you need compile-level circular dependency).

To really understand those things, you want to get a really intimate understanding of compiling and linking as separate stages, and understand fully how translation units work and how they may communicate information during linkage.

No, I mean, I thought that the test requires him to define the methods or the class after B.

Ah, you're probably right. I misunderstood you.

...

Nothing in AGDG matters if you don't make people and design their skeletons beforehand so you don't have the copy pasta skeletons saturating the game and unqie skeleton models to meet all body types.

I did exactly that.
If I replace move_to with move it works.
move_to puts me to the center of the scene+offset.

Also try adding stuff for reference so you actually see when you're moving.

wew, apparently I forgot to try to switch it back to move

but now i remember why I did that in the first place, which is because the camera doesn't follow the player now and I think someone told me in a previous thread to switch to move_to()

and yes, the camera is set to current

Camera2D->Current->On

...

Nevermind.
Posted before finished reading.

Maybe it's actually a bug.
Are you on 2.1 stable?

yes

Minor nomenclature thing: What you call definition is usually called declaration and what you call implementation is called definition. Note that the meaning of "definition" differs. I'm pointing this out so that user doesn't get confused next time he reads other sources. Also, I'd like to add that if user ever tries to write two classes that have each other as members, that is afaik literally impossible in c++. Pointers and references are fine, but not "inline" members (dunno the correct word). If one ever wants to do that, consider plain inheritance instead, or some other solution.

It is possible. For example

class CLASS_2;class CLASS_1{public:CLASS_2* cls_ptr;};class CLASS_2{//real body of a class}

Did you miss the part where he said

Not quite. You're mixing up the difference between a function and a class, which have related but independent terms. A class declaration that establishes its members is a definition, not just a declaration.

class A; // Declared class with no definition (class declaration, also known as forward-declaration)class A {}; // Definiton of previously declared class.class B { void foo();}; // Defined class with a function declaration (class declaration and definition, with function declaration without definition)void B::foo() {} // Definition of previously declared member functionclass B { void foo() {};}; // Defined class with a function definition (class declaration and definition, with function declaration and definition)

You'd do well to not confuse these things. I use "implementation", but that means literally the same thing as "definition" pretty much everywhere. I use the term "implementation" as to not confuse when speaking of both class definition and function definition in the same context, as class "implementation" would only really refer to member function implementations in regular use.
Read page 226 of the C++ standard: open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4296.pdf

item 2:

WRYYYYYYYYYYYYYYYYY

...

...

that's not a spicy meatball

Wow, no longer interested in this.

aren't you a fun guy

That artstyle is pretty good.
is it a pizza game?

It is.

I hope this will still work when linked.

V-videogames

you're-a welcome

The right leg moves a bit unnaturally, but nice job, I like.

Not much of /agdg/ but a bit. Anyway, I plan to do a minecraft-based Metroidvania/kings field game (or modded map)

There are some zones where it's difficult to proceed or there are many secrets to find. I plan to add some sort of bloodstain a la dark souls where you talk with a spectre and he tells you the story of his death, possibly providing some additional info.

Doesn't really break the immersion but… is this casual? Should I go full hardcore?

It'll be the comfiest and most atmospheric if there's no one to talk to.
I sure hope you'll be taking advantage of the voxel engine to have destructible walls.
you might want to use minetest instead, you can actually make a game in that

While this is a cool idea, I can't implore you enough to try and eventually make this it's own game in a real engine.

I was trying for 3 years to make a King's Field-esque game but now I'm currently tied-up in a project I'm enjoying, otherwise we could get together and do something

Game is nearly done, so I just need to add some items, place some enemies and that's it.

Once that's done I'll release it and try to port it to Minetest, if the combat is remotely good there.

look on >>>/agdg/
That's where the general resource threads are located

ooga booga where they new thread @ fam???

BIX NOOD

Making progress on my Children mod for RimWorld. Currently toddlers can still do everything adults can do, but children are almost much feature complete. Just need to remove the adulthood backstories, and child backstories if they weren't born in your colony.

I don't play RimWorld but adding children sounds like a cool idea, takes me back to games like Fire Emblem: Awakening and Rune Factory.

...

...

What about Gitlab?

Is OpenGL difficult to learn? My interest is in physics simulations, not so much games.

OpenGL is going to be one of the easier 3D languages to learn, especially when compared to the newer, lower-level languages like Vulkan/DirectX12/etc.

You're not allowed to make a new thread before this one reaches page 14 or so.

Here you go: www.open.gl

I wouldn't call begging random people from /agdg/ to make the game for you trying to make a game

Currently there's none because I don't know how to implement that without making the players cheat their way up to the pinnacle. But there's lots of secrets, bosses, areas and items.

And the Dracula fight is a mix between Simon's quest Drac and Castlevania X.

Please don't be butthurt.

Just let players bomb fucking everything in search for secret areas.
do you even metroid

IMPORTANT

NEW BREAD
Because new op is retarded, and didn't post this here

I posted it, but man I copied the wrong thread number

just some friendly bullying user that's all
I just happen to know that hasn't done shit for his King's Field-esque game
but i'm glad to see he is actually doing something useful with his time

kek, yeah I figured that, I'm just giving u shit that's all

I am he. He is me. Me is we.

I kind of put the KF stuff on hold when I gave up on finding folks with a similar vision for a game. I still do a lot of worldbuilding with it, though, and I guess at this point the amount of lore I've got would be better suited for a straight TRPG or even a fucking series of novels.