[ / / / / / / / / / / / / / ] [ dir / agatha2 / choroy / fascist / freeb / loomis / miku / nara / strek ]

/v/ - Video Games

Vidya Gaems
Email
Comment *
File
Password (Randomized for file and post deletion; you may also set your own.)
* = required field[▶ Show post options & limits]
Confused? See the FAQ.
Flag
Embed
(replaces files and can be used instead)
Oekaki
Show oekaki applet
(replaces files and can be used instead)
Options

Allowed file types:jpg, jpeg, gif, png, webm, mp4, swf, pdf
Max filesize is 16 MB.
Max image dimensions are 15000 x 15000.
You may upload 5 per post.


<BOARD RULES>
[ /agdg/ | Vidya Porn | Hentai Games | Retro Vidya | Contact ]

File: e06483a1347a580⋯.png (41.5 KB, 550x550, 1:1, ClipboardImage.png)

File: 561364a1fcf85f9⋯.gif (20.21 KB, 170x160, 17:16, a.gif)

File: fe830786aa06ed9⋯.gif (22.02 KB, 193x151, 193:151, g.gif)

File: f6041368a40f121⋯.gif (18.4 KB, 152x184, 19:23, d.gif)

File: fe830786aa06ed9⋯.gif (22.02 KB, 193x151, 193:151, g.gif)

a93cd6  No.16666818

"Game engines are not games, where is your game?" edition

Resources

>>>/agdg/

>>>/vm/

>#8/agdg/ @irc.rizon.net

>http://8agdg.wikidot.com/resources

Links

>Wiki: http://8agdg.wikidot.com/

>Beginner's guide: >>>/agdg/29080

>Previous thread: >>16629802

Announcements

>QUARTERLY DEMO DAY SCHEDULED FOR August 8th (08/08)

>Please contribute to the wiki if you can

Demo day is just five (5) weeks away, use your time wisely

26b7c8  No.16666844

>Game engines are not games

Well shit, I'm out of here.

On topic though, how do anons here work around OpenGL's limitations of Z-buffering with transparency? I have some ideas but they'd only work with my game, not anything more broad.

How do modern games work around them? Is it just because they all use DirectX instead of OpenGL?

And most curiously, how did old games work around them? Just a quick look shows that Spyro and Mario 64 had no problems with it. I don't know much about Spyro itself, but the Nintendo 64 was designed largely by SGI, so surely it should be similar in some ways to older OpenGL versions, right?


a93cd6  No.16666848

>>16666844

Sorry, I always feel like the thread topic is always a fun little joke to play with. I'm pretty bad for enginedev too.


26b7c8  No.16666849

>>16666848

Hey, no worries anon. Enginedev being a black hole impossible to get out of isn't too far from the truth.


998efb  No.16666908

File: 07718ec5184991f⋯.jpg (181.08 KB, 1024x748, 256:187, eating_dirt_by_dogisaga_dc….jpg)

>Game engines are not games

I'll finish my "game" any year, I swear!

>>16666844

Older games can sort the polygons correctly using a BSP tree for example. In areas where it is not possible to sort two polygons, the BSP tree will actually cut the polygons up until they can be sorted.

Games like to deal with transparent polygons by rendering them separately from the rest of the scene without any Z buffer active, in a specific order. There are also techniques like this: https://en.wikipedia.org/wiki/Order-independent_transparency

But they don't really work on older hardware. You also don't need to split polygons if you manually ensure that there are no sorting issues.


228367  No.16666949

Enginedevs of today, AAA studios of tomorrow


b3b46c  No.16666995

>>16666844

When deferred rendering hit, transparency disappeared from videogames. Blending is just something you don't do in deferred rendering.

Modern games first draw all opaque objects (front to back, minimizes overdraw), then apply some of the deferred rendering post processing techniques, draw the transparent objects (back to front, accurate transparency) and lastly apply the remaining post processing effects.

As a result of this, transparent objects run into limitations that opaque objects don't; most prominent one being that only a limited amount of lights can affect them.

The work around of old games is generally "put triangles in such an order that they're not likely to cause issues, and just hope the GPU batches them in a way that it doesn't fuck up".

The same issue actually exists in modern games within objects (as individual triangles don't get sorted, objects do), but to get around that developers simply don't make models with lots of transparency.

There are solutions to achieve order-independent transparency, like fragment sorting. Shadow of Mordor actually has it, and it's the first thing you turn off if your game doesn't run fast enough because it's expensive as shit.


a93cd6  No.16667023

>>16666995

What makes it expensive? Is it just the sheer amount of tris you'd have to sort every frame? With models with 12k tris, I can see why it'd choke up the GPU, but surely someone is working on optimizations for that sort of thing

Do games still use depth stenciling, or is that an old technique now?


8808e2  No.16667035

Engine dev is way better and more productive than supposed game dev.

Retards who fetishize game dev like to think games are an art form or something gay like that. An engine dev idealizes the true form of a game, and that is a program that entertains the user. He understands the technological aspect of what a game is.

It's the under lying problem here that autist gamers are slaves to their own hedonistic desires, ultimately funding and supporting the semitic control of their own infrastructure.


a93cd6  No.16667037

>>16667035

I spent literally all week trying to optimize my AABB Rectangle.Contains() code.


b3b46c  No.16667045

>>16667023

AFAIK the technique they use involves putting the fragments into a linked list and sorting them at the end. http://www.elopezr.com/the-rendering-of-middle-earth-shadow-of-mordor/

It's expensive because GPU's are bad at that kind of thing.


b094c8  No.16667051

>5 weeks

fugg :DDD


998efb  No.16667057

File: b04a1157f679b6f⋯.png (487.49 KB, 800x600, 4:3, title_screen_sigma2.png)

>>16667035

This is the real truth. The medium is the message- the game play and game feeling is just as much a product of the tools and engine used as it is a product of the game-specific work. A creator can only create their own game feeling by creating their own engine feeling- and this is only realized by people who are making their own engines, or could make their own engines if they wanted, but would rather gut an existing one for their own purposes.


b3b46c  No.16667064

>>16667057

>>16667035

You are only correct once you've released a game.


f945b1  No.16667067

>>16667064

Sigma dev has released a game. That's why his engine is sigma 2.


a93cd6  No.16667119

>>16667067

What game? Is he Speebot dev or am I retarded?


1c7c5d  No.16667135

>>16666844

The modern solution is to use forward+ or clustered deferred shading. There's a presentation on nuDoom how they did it there for example.

>>16667035

>larping


701c46  No.16667158

>>16667057

Are those mice?


9e6a89  No.16667237

>>16667119

How new are you?


392541  No.16667273

File: ef23d7e3c0ddcba⋯.mp4 (9.19 MB, 640x360, 16:9, 2019-07-05 21-05-51.mp4)

hideo jame


b3b46c  No.16667295

>>16667273

is this the new dorf fort


b3527a  No.16667296

I found out why the functions glGetProcAddressARB returned were segfaulting. I read a lot of old discussions and one thing that kept coming up was that it's not good to have a function pointer variable named the same thing as a function. I didn't think I had OpenGL 2.1 functions available, but I try it without the loader and I do. I look up why and it's because Linux Standard Base 5 says the OpenGL ABI should support 2.1 and that must have finally found its way into my distro. Currently thinking about how to support the old abi and the new. I think I might have to compile two versions, but that is not ideal.


b9c984  No.16667308

>>16666818

4chan /agdg/ demo day today, go test their stuff and bully them. Some of the demos look pretty neat, I'm submitting ANUBITEK today but will be updating it for 8ch's demo day.


998efb  No.16667324

>>16667064

I have released a game. Unlike someone's mediocre project in unity, my incompetence has seeped through my work onto every single level of the creation, giving my game a completely unique set of flaws that could not be produced in any other way.

https://ika.itch.io/redsky


683259  No.16667331

>>16666844

hand sort, draw back to front, design fairly simple transparency objects that minimize artifacts - depending on how you sort & batch: by tri or by object.


b3527a  No.16667348

>>16667296

I don't know what I did, but now the functions no longer segfault when called from pointers with the same name. I must have done something truly retarded last night. I hope some of you will test the Linux version on demo day.


b3b46c  No.16667458


000000  No.16667484

just bought rpg maker 2003 on sale for dirt cheap during the steam sale, i'm thinking of making a gen 1 pokemon old gameboy or gen 3 pokemon gameboy advance looking game.

got any ideas for cool mechanics or maybe even story ideas i could add into my doujin soft rpg maker game? it's going to be an original work and not based on anything but inspired by stuff like anime and manga and other games in a few ways.


b9c984  No.16667612

>>16667484

Turn based but you can do more than one attack, or if you are being attacked you can defend if you time a button press right. Add parrying. Make an action points system that resets on that player's next turn which is also used for defense. No action points, can't defend.


d65ea5  No.16667652

All Games Done Gay


84c1c3  No.16667696

>>16667677

Go back faggot.


4ae59b  No.16667700

>>16667484

Should've got XP and Pokemon Essentials. If your doujin soft RPG Maker game and Pokemon were the same game, there's only one other game that does that well.


26b7c8  No.16667704

>>16667677

Cuckchan's a shithole, but mostly everyone here have known that for years. The fact that you've stayed there until now says more about you than anything. We've had enough problems with cuckchan wojaks in these threads as it is.


9f974b  No.16667711

The soyim are trying to get GIMP renamed again.

https://gitlab.gnome.org/GNOME/gimp/issues/3617


000000  No.16667723

>>16667612

sounds like a cool idea i'll keep it in mind

>>16667700

is that so i actually own every copy of rpg maker now also own a copy of xp, vx ace, and mv on steam (though i never know which is the best rpg maker to use to make a game, so what do you think is the best?) i have just been holding out on buying 2003 because the original price is to much for an old version of rpg maker.

i'm not necessarily making a pokemon fan game as i will be making all of my own sprite art so i don't know how useful pokemon essentials will be to me, but rather i'm drawing inspiration from pokemon a long with a bunch of other stuff to make my own doujin soft game that plays completely different.


b68bb5  No.16667727

>>16667711

>For the sake of productive discussion, I'd like to ask non-contributors not to comment if they are not suggesting a name. If you would like to express approval or disapproval use GitLab's reactions, not the comments.

>I'm not interested in hearing anyone's arguments against why we should have to do this. Just downvote it goy.

GIMP is kind of a shitty name, but I'd leave it just to spite these people.


26b7c8  No.16667729

>>16667711

I completely forgot gimp was even a word until this. Well, if they decide to change it, I'll just stop using it and pirate photoshop instead.


26b7c8  No.16667755

>>16667751

>How do i post anonymously? I don't want an id next to my posts and i'm too lazy to use tor.

Go to a board that doesn't have IDs.


44ef66  No.16667812

>>16667677

>>16667751

Piss off we don't need or want you here you faggot.


b3b46c  No.16667816

>>16667751

>How do i post anonymously?

By not posting here at all.


41cd50  No.16667822

>>16667677

>goes to new board

>acts like a nigger

>doesn't even post progress

Get out.


e30752  No.16668001

File: 06b569a5c0f3abb⋯.png (31.51 KB, 758x122, 379:61, illegal emojis.png)

>>16667711

>We don't like it being called GIMP

<So fork it and give it a different name

>IT'S NOT UP TO US TO FIX IT WHY ARE YOU BEING LAZY AND STUPID

These fucking faggots.


dc7c00  No.16668008

One day I will stop coding UI and start posting progress again

But not today


9f974b  No.16668040

>>16668001

>ban the monkey emoji

>not the wheelchair and clown emoji


412998  No.16668065

>>16667727

GIMP has had its name for over 20 years. These people don't care. It's about feeling powerful in the most petty of ways.


361328  No.16668075

>unity 2019.3.0a8 crashes when creating a new project

Why would they release a broken version


9f974b  No.16668081

>>16668075

Because even with Mike Acton and the DOD fags trying to salvage shit, they're still Unity.


dc7c00  No.16668109

>>16668075

If I sneeze unity crashes.

I live that they are setting a target wait time after changing code to 0.5 seconds. Too bad they are still at 15 if it does not crash


2b6f45  No.16668142

File: b89ce184a7b7094⋯.png (37.78 KB, 981x524, 981:524, leave me alone whore.PNG)

>>16667711

>maintainer tells them to fuck off

>um actually you don't you realize this is really bad why don't you take my anecdotal evidence as gospel while i put words in your mouth

it's fucking free software and none of the people who care about the name would ever donate after using it. why would they listen to what some stupid university cunt thinks about it


304f60  No.16668165

>>16667711

>>16668142

What the fuck are they complaining about? The ONLY other use of the word gimp in common modern usage is to refer to a type of bondage fetishist. I don't think anyone has used gimp to refer to cripples in 30 years or more.


13885c  No.16668175

>>16668001

>>16668142

Best part is how fucking petty and useless this whole issue is. Complaining about the name 23 years after release, like you couldn't stick up your nose for a more worthless reason if you tried, yet these people think they're some fucking saints out saving the world from evil.

My dream is to one day make a program that's so good it makes every competing software obsolete, so good that if you try it using anything else will be agonizing, and then give it some outrageous name that offends all the cucks and SJWs. Like Storm Studio and the logo looks like Schutzstaffel, or call it TIAMID and say it stands for "Transgender Is A Mental Illness, Duh".


a93cd6  No.16668241

>>16667237

Been here since day one, people keep hopping projects or disappearing, so i stopped paying attention a long time ago


9f974b  No.16668247

Are visual novels welcome here too?


412998  No.16668250

>>16668142

Such a weasely, fake niceness to them.


414b6a  No.16668411

Could I get some opinions on the ideal input buffering window for action games? I'm redoing mine currently and figured I might as well get the timing right, too.


304f60  No.16668416

Is Godot something that's good to start with if you have little to no programming experience? Could you start with it and learn while you're going as needed?


54397c  No.16668438

>>16668142

Interesting how SJW go from "ban these fuckers" to "let's brigade this issue" to passive-aggressive comments that boil down to "the name may offend some very small, insignificant to the point of non-existence people, so you need to change it because those 3 people won't use the program because of its name. Fuck the current userbase, they don't need documentation or google search results."

It's great that the project maintainers are just telling them to fuck off, we need more projects that are like this instead of appeasing these faggots.


96274b  No.16668443

File: b649da1e725ec9a⋯.mp4 (4.92 MB, 1184x736, 37:23, pineapple.mp4)

Dialogue system is up and running but needs more work and some polish. Items are can now be stacked.


d0b506  No.16668444

File: af2a0c7f7783546⋯.png (29.42 KB, 741x568, 741:568, apu_inquisitive.png)

howz do i mek gaym?


dc7c00  No.16668460

File: 8f9d48a1e5bdbfe⋯.png (113.3 KB, 300x240, 5:4, ClipboardImage.png)

>>16668444

just like


f6169a  No.16668467

>>16668444 (checked)

What kind of game do you want to make?


d0b506  No.16668473

>>16668467

a baseball game.


b3b46c  No.16668480

YouTube embed. Click thumbnail to play.

>>16668473

What kind of baseball game?


f6169a  No.16668481

>>16668473

2d or 3d?


d0b506  No.16668489

>>16668481

I can't say exactly or you will make fun of me.

>>16668480

3d. Would that be harder?


b3b46c  No.16668496


2b6f45  No.16668504

>>16668489

>I can't say exactly or you will make fun of me.

i'm going to assume it's a baseball mascot themed furry vore game until you explain otherwise


281185  No.16668505

File: abe5dacdcef5e9e⋯.gif (1.17 MB, 400x226, 200:113, no stay.gif)

>>16666844

>Well shit, I'm out of here.

NO, STAY


8b68d2  No.16668551

File: cda66ffb52d2e35⋯.webm (3.08 MB, 640x360, 16:9, unreal4.webm)

>>16668416

if you have zero idea how stuff "works" sticking to one of the general purpose tutorials is a safer bet. godot/unity/gamemaker etc require at least some basic understanding.

just grab any beginner book for the language you want, or heck simply use something like turtleacademy.com which exists specifically for this reason also prevents any language shitflinging that might occur depending on what people recommend

>>16668247

>Are visual novels welcome here too?

it's not like the thread is running super fast, and even ren'py still requires some logic to do stuff so don't see why not.


35fafc  No.16668561

File: 3e3fa38d103f6d3⋯.gif (1.29 MB, 269x152, 269:152, ...nah, fuck this.gif)


dc7c00  No.16668562

File: d204ad95eca4f9d⋯.jpg (80.67 KB, 615x653, 615:653, naga smug.jpg)

>>16668489

>implying we won't make even more fun of you if you refuse to say

How insecure can you be? That is pretty pathetic.


f6169a  No.16668569

>>16668489

3d will generally take longer. You'll need to learn how to model, rig, animate, uv unwrap and texture 3d models. You should learn how to use a game engine that has a focus on 3d, like Unity or Unreal Engine. Godot would work too but the community doesn't have quite as much helpful stuff as the other engines.

Plan everything out well in advance and figure out the order you want to work on things. Generally you want to get the core gameplay loop working as soon as possible, and you can add secondary loops, mechanics, and features on top of it. The core gameplay loop is what the player is doing moment to moment, while the secondary loops are things that support that core loop. In Doom the core loop would be moving and shooting, while the secondary loop would be navigating the levels, getting pickups, and figuring out which enemies you should target first.

In a baseball game I would assume the core gameplay loop would be the bare minimum for a baseball simulation. Hitting the ball, catching the ball, throwing the ball, running bases, while the secondary loop would be placing the players on the field strategically, picking the right players to go out, changing what kind of pitch the pitcher throws, keeping score, and so on.


d0b506  No.16668581

File: 103bd8d08bc51ff⋯.jpg (94.06 KB, 640x607, 640:607, kit3.jpg)

>>16668569

That's what I figured. I can already model and program a bit, so I'll probably go with unity. Thanks for the advice.


f6169a  No.16668584

>>16668581

Happy to help.


35fafc  No.16668672

File: 7a5cc8a2fc784e7⋯.png (1.23 MB, 1840x2402, 920:1201, CIA apparently posted on P….png)

>>16668581

<what a minute, that .jpg


d9a133  No.16668933

>>16667273

wew, how long have you been working on this?


56dedd  No.16669179

>>16668075

>unity 2019.3.0a8 crashes when creating a new project

>Why would they release a broken version

>unity 2019.3.0a8

Anon, that is an ALPHA build of Unity. 2019.2.0b7 is the current BETA build. 2019.1.9f1 is the current STABLE build. The "a" means alpha, "b" means beta, and "f" means it's finished and getting just bugfixes at this point. If you want the most stable Unity, you need to get on the LTS releases. Most recent LTS release is 2018.4.3f1, and the most mature LTS release is 2017.4.30f1.

https://unity3d.com/unity/qa/lts-releases


392541  No.16669323

File: 077b3100f73500b⋯.png (117.78 KB, 955x532, 955:532, original version.PNG)

File: d46f7dfc8542120⋯.png (400.44 KB, 945x606, 315:202, previous.png)

File: b958792351cc346⋯.png (616.92 KB, 1165x643, 1165:643, newest.PNG)

>>16668933

started about 4 weeks ago but this is the third iteration of a year old concept


a93cd6  No.16669398

>>16667273

Ganbare anon, this looks like it could be fun


f7b469  No.16669405

I had a wee bit of an idea for an upcoming project and I'm curious what you think. I'm considering doing music first. My reasoning there is it may help get over potential mental blocks, perhaps even be inspiring instead.


f6169a  No.16669471

>>16669405

"doing the music first" isn't so much an idea for a project as it is a loose plan of action. If it works for you go ahead, but I know that plan wouldn't work out well for me since I prefer to have a strong set of mechanics to work from and build the rest of the game on top of. No harm in trying it, though. If nothing else you'll get to practice your music composition.


ab89f2  No.16669480

File: cf9e0f6757a77a1⋯.png (14.42 KB, 636x173, 636:173, niggertard.png)

>>16667711

>nigger that created all the drama openly admits he's an autistic tard

lol


3f5934  No.16669581

File: 9f16e474027e4e5⋯.jpg (55.44 KB, 640x1138, 320:569, z0uT672_d.jpg)

>>16669480

He got BTFO for getting caught red handed asking his faggy friends to flood his posts with upboats. Everyone sane can see he and his SJW friends are doing this in incredibly bad faith.


412998  No.16669717

>>16669323

Oh I remember those cutout ship experiments. Didn't know you were the space gondola and the star trek simulacra dude. Cool beans.


412998  No.16669722

>>16669480

>Let's not debate terms

>I prefer these terms

In the same paragraph…


f1cb68  No.16669738

>>16668142

>looked up the person

It seems to be a mentally ill dick-chopper. What a fucking surprise.


3370f5  No.16669753

File: 6eb804de0b5c444⋯.jpg (37.91 KB, 313x294, 313:294, LOOK HE'S A NIGGER.jpg)

>>16669480

>gitlab activity

>scroll down

>adding the cock to a GNOME project

>scroll down

>adding the cock to another GNOME project

I wonder how long until they try to use that as justification to have a GNOME-wide cock, because "so many projects have been super accepting of it, it's already widely used, why not just ratify it as a global document, it'd be really inconsiderate not to".


17ac89  No.16669795

>>16669480

>>I'm autistic

>lived with a bunch of autists for a few years

>one of the most common sentences in the house was "stop acting so autistic you retard"

It's amazing how these idiots always assume that just because their feelings get hurt over the use of a fucking word, everyone must hate it and it should be banned.


c7a185  No.16670302

>>16669480

OH FUCK! I can't believe I recognize that user. He's a nice guy. The issue is that he's with a bad crowd. He frequently talks with delusional trannies on Mastodon (Think ResetEra, but 10x the lunacy) and often parrots their batshit insane views.

If he's with a better chill group, then he'll become a better person. People need to ward him away from that crowd first.


998efb  No.16670503

File: 3203d7e5ead8693⋯.jpg (87.7 KB, 800x670, 80:67, 26af96b89114cd9c7947713df9….jpg)

>>16670302

Maybe you should be hanging out with some more "nice guy"'s like your subhuman friend instead of posting here you delusional retard. Go be a faggot somewhere else.


9f974b  No.16670603

Reminder to any Godotfags here that they're holding the anonymous community survey right now.

https://docs.google.com/forms/d/e/1FAIpQLSd1FKIWcRDil70cV1hk1wLuRJS9jeVAZuiGUSyiEmBOQywHcw/viewform


234a87  No.16670613

File: a9d41872c4cd485⋯.jpg (460.75 KB, 1232x776, 154:97, nugger.jpg)

Are your demos ready?


b1fa83  No.16670671


41cd50  No.16670694

File: e909894c4d146f2⋯.png (27.96 KB, 721x341, 721:341, ClipboardImage.png)

>>16670613

>5 weeks left

What do you think?


385b15  No.16670842

>>16669471

Suppume I should have been more clear there, it's more about doing music before assets. It's in a placeholder state regarding assets, music and sound end up being my biggest worry through all that so I figure I'll save myself some stress later on.


2b6f45  No.16670882

File: 531148ae9579a49⋯.jpg (49.13 KB, 300x898, 150:449, 531148ae9579a491924e115f77….jpg)

>>16670613

o-of course


f6169a  No.16671055

>>16670842

Working on the sound before you work on other assets sounds perfectly fine.


b3b46c  No.16671069

>remember someone talked here about an online conference two threads ago

>go look it up since it actually happened now

>all the videos, both youtube and their own website, are down

>googling the name of the conferences fills results with articles shilling rami's name

What a fucking joke.


2e274a  No.16671187

>>16670613

like 25% the way there on my demo, how long is there left to demo day?


b3b46c  No.16671194

>>16671187

It's on hitler day, so a bit less than 5 weeks.


13885c  No.16671491

File: 2030115893fb036⋯.jpg (98.58 KB, 667x692, 667:692, 14094.jpg)

>mfw autistic and doing some really esoteric mess of arrays and gotos just to avoid recursion

Someone tell me recursive function calls are a-okay


b3527a  No.16671518

>>16671491

anon what the fuck are you doing?


dc7c00  No.16671529

>>16671491

>Someone tell me recursive function calls are a-okay

they are super A-OK, especially when dealing with hierarchical structures


2b6f45  No.16671536

>>16671491

as long as you've got a clearly defined exit condition, recursion is perfectly fine to use, and sometimes it's easier to read than a bunch of nested loops if you're doing what i think you're doing


70a140  No.16671538

File: 3acbbfe013e7f8a⋯.png (360.19 KB, 473x675, 473:675, confused.png)

>>16671491

why the hell wouldn't they be?


13885c  No.16671564

>>16671518

>>16671538

I have PTSD from running into recursion overflow in some world generation thing and having to rewrite that entire system.

This wasn't that complicated before but I'm adding significant improvements and it suddenly became a lot less straightforward.


f6169a  No.16671602

>>16671491

Recursion is awesome. If you are traversing something like a tree data structure recursive functions should be your first choice.

https://en.wikipedia.org/wiki/Tree_traversal

t. lisp programmer


dc7c00  No.16671684

>>16671538

Cache misses. Which is why it's almost impossible to use octrees in Unity's ECS.

Supposedly, cache misses are the biggest performance bottlenecks nowadays, thanks to everyone using OOP.

Functions that access the memory linearly can deploy some tricks to avoid most if not all cache misses, but if you do any random access (which recursive will inevitably do), there's a high chance of a cache miss


2e274a  No.16671686

How much players could godot handle for a 3D game?


f6169a  No.16671767

>>16671686

30 liters.


b1565e  No.16671841

>>16671686

As many as you want, it just tanks in performance whenever you use multiple shaders and materials. It's only limited in maximum lights as it's a deferred renderer.


f36ef9  No.16671857

>>16671684

>recursive = random access = cache miss

Not really.


a93cd6  No.16671896

>>16671841

>It's only limited in maximum lights as it's a deferred renderer.

How does lighting interact with deferred rendering, so as to create a limit?


52c039  No.16672637

File: 74d804ef943fb55⋯.png (1008.9 KB, 960x640, 3:2, behold the power of my mas….png)

>>16671896

It isn't a hard limit,but rather an issue of frame timing.

To simplify it deferred rendering has a runtime of (Pixels on screen x Amount of light sources)

Which is way better then most other methods but still means that adding another light is similar to doubling resolution.

Eventually you will just become unable to catch up to your frames.


8808e2  No.16672663

>>16671686

Multiplayer hasn't really been tested, but theoretically is alright as long as you optimize it.


8808e2  No.16672666

>>16671491

Recursion is why lisp hasn't been relevant since the 70's and why every scheme iteration is either built into C or Java like Racket and Clojure, respectively.


9f974b  No.16672668

>>16671841

>>16671896

>>16672637

Godot uses forward rendering, faggot.


52c039  No.16672680

File: 7ca83a4a6626fd8⋯.png (18.21 KB, 411x293, 411:293, no.png)

>>16672668

I didn't mention Godot,fag.The question was about how deferred lightning is affected by the number of lights in a scene.


412998  No.16672939

>>16672668

>>16672637

Is there any reason why engines would prefer forward rendering? Multiple separate passes sound exciting to me, and more versatile especially for post-processing effects. From what I'm reading, deferred lighting (an elaboration of DR) solves the possible cons of DR. Am I missing something?


9ce8be  No.16672944

>>16666818

Game engines are the skeleton and organs of games. Everything else is just a mod / level pack and added resource.


41cd50  No.16673009

>>16672939

The big issues are memory and transparency. Deferred lighting alleviates the memory issue partially but you still have to do fucky workarounds for transparency. Games that really need transparency tend to go with Forward+ these days from what I know.


a93cd6  No.16673016

>>16673009

>>16672939

>>16672668

>>16672637

So then how does forward+ rendering work?


41cd50  No.16673034

>>16673016

It's nothing special, you just introduce light culling like you would for a deferred renderer. Research seems to have stopped at clustered light culling (https://www.researchgate.net/publication/289301155_Clustered_deferred_and_forward_shading) but I think it's still relevant.


c86083  No.16673166

File: 9120c300ec6ef66⋯.png (6.2 MB, 2552x1302, 1276:651, ClipboardImage.png)

>>16670613

Not yet, but it absolutely has to be ready by 08/08. Hard deadline.

>>16672637

>Which is way better then most other methods but still means that adding another light is similar to doubling resolution.

Small mistake you made there. It's not similar at all to doubling the resolution. In fact, it's A LOT better than that. Sure, if you had one light and add a second, then it doubles. But if you add a third, you don't double again. Deferred does lighting in linear time or O(n). Doubling every time you add a light would be exponential or O(2^n) which would be so much worse than forward.


52c039  No.16673253

File: 2ba4a7936d0a80d⋯.jpg (5.07 KB, 225x225, 1:1, noided.jpg)

>>16673166

> Doubling every time you add a light would be exponential or O(2^n) which would be so much worse

My apologies,the sleep deprivation is starting to get to me


c86083  No.16673278

>>16673253

>sleep deprivation

What's it with amateur devs and fucked up sleeping schedules anyway?


2e274a  No.16673297

File: ef6cd5a169b112a⋯.gif (1.12 MB, 389x286, 389:286, Lenny.gif)

>>16671841

>>16671767

>>16672663

Thanks, couldnt really find any solid info on multiplayer for godot


d9a133  No.16673312

File: 7221d0d3fec90f2⋯.webm (8.03 MB, 1920x1200, 8:5, rip.webm)

File: a069241048d3b65⋯.webm (7.42 MB, 1920x1200, 8:5, argh.webm)

>>16670613

the noose is still loose, right?

The method of jumping-for-a-few-minutes-at-a-time-and-trying-to-fix-and-hack-in-what-I-can didn't quite work for the item name display. Too much spaghetti. I think this will get a total rewrite for timotei. Here are some of the recordings.


683259  No.16673325

>>16671491

One thing I do remember after reading K&R is how C functions work. The return address and calling parameters are pushed onto the stack. Any variables created in the function that aren't explicitly allocated on the heap are (if you're lucky) in data registers or allocated from the stack (the compiler figures this out and plans for it when compiling).

When you recursively enter a function, you do so before returning from the old function. As you continue to recursively call functions, you continuously use up more of the stack without calling return.

Obviously, there is a practical limit to the depth of recursion you can use, based on the size of the stack you have. If you are recursively processing a dynamic data structures you need to determine what your maximum level of recursion depth could be and size your stack accordingly. If not, your program WILL crash.


683259  No.16673334

>>16672663

Is everyone using the improved Godot DAE exporter for Blender? I tried using 2 different branches of their Godot Scene exporter for Blender but both were pretty badly broken. They don't even bother to mention what version of Blender they developed/tested for in their readme, so my thinking is that they really don't give a shit about actually making it useful.


764701  No.16673410

>>16667035

I was a smug engine dev like you, until I realized that game dev or modding will improve your engine. You need to figure out what you want in order to remain focused, otherwise you'll be cloning other old engines with obsolete practices.


805a80  No.16673480

>>16669398

On the chance this is an honest mistake, "ganbare" is used when referring to yourself. "Ganbatte" is for another.


f37169  No.16673524

>>16673480

No, it isn't. Ganbare is just much more direct (and by extension ruder) than ganbatte.


a851b5  No.16673544

File: ddb0fd8fe2d75f1⋯.png (102.42 KB, 785x513, 785:513, agdg proofs.png)

>>16672944 (checked)

If that was the case then a lot more games would be modifiable by your definition which is do not, where is the evidence that supports your theory?


412998  No.16673557

>>16673544

Game engines being the infrastructure is self-evident. The game being a mod is inaccurate, but anon was making a point so exaggeration is fine.The modifiable part is an assumption on your part and it depends on how the engine integrates the game built on it.


a93cd6  No.16674231

>>16673524

>>16673480

>I can't learn japanese


8c6e74  No.16676743

File: 35c7ac247547836⋯.gif (4.87 MB, 400x300, 4:3, Lp65tvGDZA.gif)


a93cd6  No.16678427

File: 6fd768b8c25a2ad⋯.png (73.27 KB, 1150x1792, 575:896, ClipboardImage.png)

What's the preferred tool for spriting? Is Aseprite still the gold standard?

Specifically, I know the SNES uses 15-bit colors, or has 65,536 valid colors. This is too larger to be indexed. However, Aseprite uses RGB color mode which is 16 million colors. Is there a way to clamp or limit Aseprite to a 15 bit mode?

I already made an image to select colors from, but this is cumbersome and I can't visualize color ramps very well using this sort of display


abd779  No.16678605

File: 16db37aa3519ed0⋯.mp4 (723.29 KB, 1280x720, 16:9, Hax1.mp4)

File: 6ac013f23bd25c7⋯.mp4 (816.28 KB, 1280x720, 16:9, hax2.mp4)

Attempt at a hacking game is now functional. "Fixed" a lot of shitty code and made four levels.


8566ab  No.16678615

>>16678605

nice

tfw I never got the E.Y.E. hacking game


abd779  No.16678647

>>16678605

https://files.catbox.moe/j83dy2.7z

link

>>16678615

It isn't the best minigame when being attacked from outside but has fun consequences


8566ab  No.16678662

File: 14208f91aa4799f⋯.png (6.5 KB, 483x173, 483:173, ClipboardImage.png)

>>16678647

>wrong font

TRIGGERED


a93cd6  No.16678677

File: 6fc443f48dbb958⋯.png (3.22 KB, 128x128, 1:1, simple_black.png)

Since I started my engine over (it's better now), I figured I should remake some placeholder sprites so I can focus on the programming


2e274a  No.16678678

File: fccb9801a07db5e⋯.jpg (208.77 KB, 500x375, 4:3, Box Girl.JPG)

>>16678615

>I never got the E.Y.E. hacking game

All you do is spam mask to take away their attack power then boost up your own, they cant do shit with 0 attack so they end up killing their shield, you then just attack them untill they die


e30752  No.16678687

File: 7f4c14fa93f7752⋯.jpg (27.79 KB, 1024x1024, 1:1, suffering.jpg)

>>16678677

>Since I started my engine over (it's better now)


d9a133  No.16678744

File: 9387af666d2092e⋯.webm (7.61 MB, 1280x800, 8:5, Desktop 2019.07.09 - 12.3….webm)

The music I was listening to just fits this little bug

send help


49558a  No.16678956

>>16678744

right now looking at loot seems like a mess, i recommend making those white highlights on the item be of the same color as the rarity they have, also did you fix the bug where you can get black rarity loot?


73e1cf  No.16679095

File: e9cf6a148c4fdf6⋯.png (72.31 KB, 1145x459, 1145:459, ClipboardImage.png)

File: 82b083e9e8c91d8⋯.png (90.7 KB, 849x624, 283:208, ClipboardImage.png)

Rate my gun model


15df98  No.16679105

File: 77f56251d7ec7bc⋯.png (312.34 KB, 582x630, 97:105, 1447777552061-0.png)

>>16679095

Nice inflation pump, really gives "blow it up your ass" new meaning.


b3527a  No.16679122

File: 54f28e894ac9b7c⋯.jpg (92.57 KB, 688x818, 344:409, ork.jpg)

>>16679095

yer shoota needz mor gubbinz an dakka ya git.


cc40c4  No.16679139

File: 271e9a9eacaa935⋯.png (595.36 KB, 1288x753, 1288:753, blender_2019-07-09_16-41-4….png)

File: 48390f6a9f0e659⋯.png (666.25 KB, 1288x753, 1288:753, 2019-07-09_16-41-59.png)

File: 93866d2aa401657⋯.png (729.49 KB, 1288x753, 1288:753, 2019-07-09_16-42-18.png)

File: abf8b0386bea70b⋯.png (740.63 KB, 1288x753, 1288:753, 2019-07-09_16-42-25.png)

>>16679095

We all start somewhere.

Speaking of guns. Does anyone who has Subdivision Surface Modelling experience know how I can unfuck this? I just want the thing to stick out of it without any pinching but don't really know how.


49558a  No.16679177

>>16679095

nice ketchup dispenser very nice


04b9d9  No.16679185

File: d0ee03f9e44f97b⋯.png (53.17 KB, 1145x459, 1145:459, gun1.png)

File: be000310cf78143⋯.png (166.69 KB, 530x745, 106:149, gun2.png)

File: 3febcc9fb4f6ac3⋯.png (220.54 KB, 608x319, 608:319, gun3.png)

File: 9496dff28726cc5⋯.png (155.04 KB, 750x530, 75:53, gun4.png)

>>16679095

I'm not a /k/ommando, but I looked at some photo references of basic rifles you were basing them off of. The magazine part (or whatever the circled area is called) looks off because of the sharp angle, most magazines have curved shapes like in the 2nd pic.

As for the design, I can't really say until I've seen the textures in place. But the end part (the part where the bullets come out) concerns me because of how unfitting it is compared to the overall design silhouette/shapes. The cylinder opening feels too big, and making it dead center is too off-putting. Also the huge cylinder the connects the end hole feels 'unsatisfying' because of the thin handles it has- I can't really pin point it because of my lack of experience though. Learning how to balance the shapes/parts of the guns would help. I'm not sure how things like rule of thirds or silhouettes is used for designing weapons or other objects- but its probably out there.

But good job on finishing the model- I can't even bring myself to finish a simple 3d object yet, its better than what I can do in a long run.


7a951b  No.16679230

>>16671491

This guy (>>16673325) is basically correct, and his post explains the potential negatives of recursion. The main thing to think about is how likely it is that you will run in to these problems.

Ask yourself:

>What will be your maximum recursion depth?

>How performance critical is this part of the code?

>What will I gain from a non-recursive version?

If you see a serious potential problem you can solve, then do it. Chances are, it is going to be a bit ugly, but gotos and arrays are probably a mistake. If you make your own stack data structure you can usually simulate a recursive function and also have more control over its execution. All-in-all it is hard to say if you are being retarded. If you give more context we might be able to find a better solution.


412998  No.16679244

>>16679139

Arrimus 3D makes useful videos on modeling and basically only talks about unfucking topology. Recommend you watch anything from him.


d9a133  No.16679361

File: ffd4e3bb6dde2fb⋯.png (2.03 MB, 1892x1102, 946:551, ClipboardImage.png)

>>16678956

>right now looking at loot seems like a mess

they don't overlap anymore though

>making those white highlights on the item be of the same color as the rarity they have

I'll look into doctard's outlines. with the shader setup I have now this will be hard to do

>did you fix the bug where you can get black rarity loot

yeah, at last we can get golden items. It wasn't a bug as rare as I thought it was.


d66f93  No.16679416

File: 2ee12b10c7803d6⋯.mp4 (9.25 MB, 1280x720, 16:9, 2019-07-09 14-00-53.mp4)


cc40c4  No.16679420

>>16679244

Thanks, I will check that out.


412998  No.16679430

>>16679361

Oh hey dude. That dungeon generator is coming up.


392541  No.16679679

File: d4cffd34b1776a8⋯.png (366.77 KB, 1480x960, 37:24, might fuck topology in fut….png)

>>16678744

beautiful

>>16679139

brainlet coming through you could try marking the seam as sharp and edge splitting before subdividing


d84e6a  No.16679698

>>16678427

I would like to know too.


cc40c4  No.16679731

File: 1a9c799b1398268⋯.png (687.84 KB, 967x718, 967:718, blender_2019-07-09_21-23-2….png)

File: 217eb1fbde42f85⋯.png (823.81 KB, 991x814, 991:814, blender_2019-07-09_21-23-2….png)

>>16679679

Doesn't work. The whole point of Subsurf modelling is that it's smoothed out. It actually does look ok from the bottom except for a small crease which is barely noticeable but the problem is at the top.


cc40c4  No.16679822

>>16679679

Fuck it, after asking some friends they told me to do this and don't care about details. Nobody is gonna see it that close up anyway.


2681fe  No.16679834

>>16679731

>>16679822

Is that even visible in-game ?

If you have to put the camera into the exact spot you have in those images then id also call it a non-issue.


cc40c4  No.16679848

>>16679834

>Is that even visible in-game ?

No, I'm just autistic.


2681fe  No.16679939

>>16679848

Yeah i know that feeling. You want every single detail to look properly even when working on something unimportant.

That really messes with my productivity sometimes.

I always just try to think of some of the weapons in even in AAA games that seem to be made by people who dont even understand how guns work to snap out of it.


a93cd6  No.16679947

>>16679848

>>16679939

If time isnt an issue, its still a good way ti practice for when it does actually matter


3aaaac  No.16680323

File: 5759c7a0b92bb8f⋯.png (495.68 KB, 704x760, 88:95, blender_2019-07-10_01-22-3….png)

Went back to it with a different method and achieved a much better result. At least I learned something new.


505b4d  No.16680445

File: 0e8dcae57eada6e⋯.gif (5.34 MB, 500x500, 1:1, snap_photo.gif)

She can take pictures of you now.


26b7c8  No.16680455

>>16680445

What does the picture look like? Does it use your Webcam or something?


392541  No.16680462

File: 9b71eeeb69871d5⋯.mp4 (6.99 MB, 640x480, 4:3, 2019-07-10 10-21-16.mp4)

File: cb83ff9060989c0⋯.png (4.86 MB, 2048x2048, 1:1, plnaasd.png)

File: 072b6e859055672⋯.png (3.17 KB, 256x256, 1:1, biomeMap.png)

File: b287aab3ba5a3de⋯.png (605.93 KB, 1046x491, 1046:491, voodoo magic.PNG)

Heres some planets and how I made them:

Started with a height map generated using a program called Wilbur which I mapped to a sphere in blender. The map was then baked to a low poly inflated cube to minimise texture distortion, especially near the poles. Using the sphere and some basic 3D noise I generated a ‘biome’ map. I also used a subsurf and a displacement modifier to bake some ambient occlusion. 2nd pic is final combined image, red for height, green for biome, blue for ambient occlusion. I also made a normal map from the height map.

In engine the planet is made from three spheres, the terrain, clouds and atmosphere. In the terrain shader, the temperature is calculated using a variable sent to the shader combined with the dot product of the position of the surface and the rotation vector of the planet (assumed to be perpendicular to the sun). The relative humidity is calculated using the biome map. Both of these values, temp and humidity, are altered by the height at that point. Using these, the terrain colour is defined by another texture lookup. 3rd pic shows the planet biomes which I tried to model after real world biomes (desert, savannahs, steppes, broadleaf forests etc. There are 18 biomes ripped straight from wikipedia). The bright colours on the planets are the ‘life’ on that planet (trees, grass, whatever). Each planets ‘life’ has its own quantity, hue and desired temperature that it thrives at. The ocean is defined by a water level variable which is sent to the shader, the colour of the ocean is defined by the planet's atmosphere. All of this is combined with some atmospheric variables and sent through to the lighting function for final mixing and to slap some specularity onto the water.

The cloud layer uses 3D simplex noise sliding through the fourth dimension for animation. The input is distorted by sending the function through itself a few times which makes some nice swirls. The clouds need some work though, when sped up the animation looks more like dropping rocks into a pond rather than looking like flowing water.

The atmosphere is just a transparent bubble with some fading on it. I made the edge between night and day invert and then pitch towards red slightly when the atmosphere is thick enough to show off sunsets. Of course the inverting doesn't happen irl but I thought it looked cool.

The spheres that make the planets are actually incredibly low poly but Im using some voodoo magic to make the silhouette really smooth.

The colours aren’t true to life, especially the ‘life’ on the planets, but I think it’s a nice mix of reality and fantasy.

If you read all that you might be wondering what, if any, of this has to do with the gameplay. It doesn’t. thanks for reading my blogpost


a93cd6  No.16680480

>>16680462

It's nice to read technical stuff like this though, so I can have loose ideas how I'd do something similar on my own one day.


505b4d  No.16680483

>>16680455

Its just your floating hands since you dont have a player model yet.


a93cd6  No.16680491

>>16680455

>>16680483

Your game should take a photo through the webcam and share it with FBI-kun


26b7c8  No.16680493

>>16680483

That's what I was wondering about since I remember there only being hands. Will there be some ability to make a custom player character, or will it just be an as-generic-as-possible bald guy with no real features, like an anon or something?


505b4d  No.16680520

>>16680493

Havent given any thought to that yet.


683259  No.16680548

>>16680462

That's really cool. I'd be curious to hear how you made the silhouette smooth. The final result looks good. It's always interesting to hear about these types of technical experiments.


a93cd6  No.16680552

>>16680462

Actually, with that biome map, it looks like there was a voronoi diagram involved. Or am I mistaken?


4ff135  No.16680787

YouTube embed. Click thumbnail to play.

>>16676743

Preview of demo:

https://anubitek.itch.io/anubitek-v-001-benchmark-demo

Check the readme

A: Suicide/Restart

S: (Hold) Run

D: Jump

F: Activate (there is nothing to activate in demo)

Plus or Minus (+, -): Hotkeys 1 and 2

Arrow keys: Move/Move UI

Escape: Main Menu

Tilde (`) (~): Open Terminal

Known bugs:

Not a bug, you may fall out of map, not every mesh has collision and each mesh that has collision is a separate collision object.. I plan to reduce collision objects total and elongate them to account for the collision of multiple meshes.

Holding run and resetting may disable run, this is a controller script issue.

Key input for Terminal may be disabled suddenly. Fixed by starting new game from Main Menu option.

Suicide button restarts game if held. Controller issue. Also Terminal open toggle suicides if using a button it shouldn't.


8808e2  No.16680977

>>16680787

I really like the sprite billboard character in 3D. It's pain rigging and creating shit in blender so this is super cool looking.


8566ab  No.16681064

>>16680787

nice to finally get a feel for it. I think you should still go with 3d movement instead of a side-scroller. After all your vids that's what I expected.

You might wanna look into using Corel Draw or Adobe InDesign and try making vector graphics for the character instead of scanning lineart.

The gib was pretty cool


4ff135  No.16681239

>>16680977

I really like billboarded sprites, it is sad to see it restricted to Doom wads.

>>16681064

3D movement is planned for the next room. I plan to make a room with a pit in the center, above the pit a moving platform on a track with security cameras at each stop on the track. If the player can press 4 buttons before security cameras register the player, a door opens on the other side of the pit. If the player is seen, they fall into the pit. After that is the stealth/RPG combat room.


02789a  No.16681289

File: 059e0d33192eae0⋯.png (118.06 KB, 266x891, 266:891, sourcetower.png)

progress on some Source mapping!!


a93cd6  No.16681290

>>16681239

>>16681239

>I really like billboarded sprites

Not Doom, but for me, it was Might and Magic 7: For Blood and Honor. I've always liked that style of sprites, too. Oh, and Hexen.

But, I am shit when it comes to 3D, so I haven't attempted it in a long long time, I always figured it'd be a lot of effort to make one animated sprite. But maybe if I ever do get to 3D games again, I'll do that


4ff135  No.16681328

YouTube embed. Click thumbnail to play.

>>16681290

Mine has to be Xenogears, if not Doom.


d9a133  No.16681489

File: 4eb67afcc57fd85⋯.png (14.39 KB, 664x129, 664:129, ClipboardImage.png)

tfw away from tablet


683259  No.16682771

>>16680787

I really like the UI and all of the features you've already put in. Looks like it's coming along nicely.


2603b1  No.16683321

Shmup anon here,

Last time I fixed the bone location for dynamic animation, when I wanted to add more turrets to be controlled and it didn't work.

Turns out I was modelling wrong and took some notes for next time: 1 mesh (set of vertices) <=> 1 armature and then set multiple bones

I was putting 1 armature per turret and this has to be managed differently, but I feel it's the wrong way so I'm leaving at that. I was also thinking about switching weapons models for the player but I feel it's slightly tricky since I have to also add some additional model management, not impossible to do, but I'll put it on a "maybe I'll do it at the end", or reserve this for if I ever do an Armored Core like game.

So that's done, continuing making boss script and fixing a few bugs, and a few usability problems since I need to have at some point syncing between animated node and weapon orientation.

At least I feel my code base was structured well enough since a few workaround I did was deprecated just by arranging my data structure a bit, it's working in a more general way.

Anyway, currently on improving script while working on boss behavior.


26b7c8  No.16683337

File: fd3f9c6651bdfcf⋯.mp4 (8.09 MB, 1600x900, 16:9, caboose cubes.mp4)

Part of me dreads getting something to work, because this means I have to move on to the next big feature and in most cases, I have no fucking idea where to even begin with those.

Anyway, here's a proto-camera, currently only horizontal. Took me way too fucking long to get it to center around the "character" properly when rotating, made me feel like a fucking retard when I figured it out.


8808e2  No.16683701

File: ebbfa3dba2e7dfe⋯.png (93.74 KB, 1195x567, 1195:567, Screenshot_2019-07-10_22-3….png)

Is this a good UV unwrap? This really isn't my forte so I don't know. This isn't my model so the topology is really bad.


a93cd6  No.16683704

>>16683337

How many vertices can you throw at it before it dips below 60 fps?


26b7c8  No.16683827

>>16683704

On my machine? 120k tris makes it sit right above 60. The framerate dropped in half because of recording, it's usually around 4k with 250 cubes, 12 tris each, which is the scene rendered there. I'm not doing culling of any kind yet because I want to iron out and optimize draw calls as hard as I can first, this is a good way to test that.


a93cd6  No.16683838

File: 287719ad4e69470⋯.png (321.06 KB, 732x549, 4:3, ClipboardImage.png)

>>16683827

>120k tris makes it sit right above 60

My machine isn't shitty, but I feel like some combination of what I'm doing to generate my 2D quads and using C# and SFML instead of writing shit directly to the graphics devices in C++ is going to impact me significantly


26b7c8  No.16684076

>>16683838

I'm trying to make mine compatible with as old a OpenGL version as possible, and so far, 1.2 (or possibly 1.1, can't verify yet) is what I'm with.

I don't do anything fancy, really. It's just very simple stuff.

glPushMatrix, glTranslatef, gluLookAt to set the view (which had next to no performance impact), followed by the actual rendering, which is just a bit of

glBindTexture, glBegin(GL_TRIANGLES); glTexCoord2d, glVertex3f

What really fucked with me at first was how I did calculations. My very first script for drawing vertices did the transformations (scaling, rotation, movement and so on) to every vertex, meaning every calculation was done several times over. I now do the calculations first, so it knows what to multiply every X, Y and Z vertex by, and only multiply the vertex itself by that.

When rendering 1000 cubes (12k tris), it raised my performance from 30 to 600 fps. I could get it even faster with a batch-draw function, where I calculate a triangle and draw it in all the places it needs to be, but again, I'm trying to optimize draw calls first and foremost, that kind of stuff comes later.

I also precalculate the texture coordinates, just to squeeze as much out of it as possible. I can't really speak for what's doing it for you. I'm just sticking to OpenGL, GLU, GLEW, GLFW.


a851b5  No.16684164

File: e8a804e00a73a2e⋯.png (224.2 KB, 544x572, 136:143, 1516745583001.png)

>>16683337

>Koshka Palpha 1.5

What kind of game are you planning to make?


26b7c8  No.16684413

>>16684164

It's not a name. That stands for Koshka Engine Pre-alpha. For the game itself, it's a 3d platformer about lolis


7d2a95  No.16684781

File: 8f6dcd8cf854f2f⋯.mp4 (2.21 MB, 1184x736, 37:23, mm1.mp4)

Got a basic minimap working but framerate took a beating.


6661bb  No.16684806

>>16669323

>Gondola Cameo

Day one purchase.


038ed4  No.16685963

File: ed8801cb69b3efe⋯.png (474.62 KB, 1290x611, 1290:611, blender_2019-07-12_04-02-2….png)

File: 69df0fe5d7629d7⋯.png (641 KB, 1292x566, 646:283, blender_2019-07-12_04-03-5….png)

My Mkb42/CETME abomination is moving forward nicely.


1d3727  No.16685986

>>16680462

neat shit. Just a guess: Is the voodoo magic just doing a sdf sphere inside the shader?


3f5934  No.16686609

>>16684781

Why should something as simple as a minimap affect framerate noticeably? Which framework/engine are you using?


a93cd6  No.16686620

>>16684781

>>16686609

inb4 he's doing something incredibly fucking stupid, like treating the minimap as a render target and the main window as a render target, and swapping between them for each tile


a93cd6  No.16686832

File: bc3f4eb603f3ea2⋯.png (50.61 KB, 991x540, 991:540, ClipboardImage.png)

My pace is glacial, it feels like I did a bi-weekly quick pass to check my existing codebase and implement a dozen new lines in that time. However, I set aside a week and a strict, thorough comb through my stuff and found a few sneaky bugs


df3daf  No.16687336

File: 6ed6bf707f067eb⋯.jpg (40.98 KB, 800x450, 16:9, ulillillia 2019.jpg)

File: a88ef549de1cd2e⋯.png (45.23 KB, 1200x485, 240:97, 1200px-Godot_logo.svg.png)

I want to get into godot and gaming dev generally. I want to make a 2D chess game for the beginning.

looking into these demo project but don't understand shit

https://github.com/godotengine/godot-demo-projects/tree/master/2d

any beginner tips or tutorials?


883caa  No.16687343

>>16687336

>Greta

Oy vey.


90fc79  No.16687352

>>16687336

Can't help with Godot specifically, but can give general gamedev tips. Chess might be difficult to start, but a reasonable goal. Start with Pong and other 1st/2nd gen era games, then work up to chess. Hardest part of gamedev (and programming is general) is managing complexity, so start as simple as possible.


17ac89  No.16687364

>>16687336

Beginner tip: don't try to make a chess AI, just make it 2 player. AI is way too difficult for a first project.

You probably want a manager object with a 2D array to keep track of piece positions, and 6 individual piece objects which define an array of offsets for movements (like [0, +1] for pawn or [-1,+2] for knight, plus being able to substitute a valu like -1 for infinite movement like the queen)


4abcc8  No.16687371

>>16687336

>any beginner tips.

Literally just start making a game, experience is the best teacher.

>tutorials?

you can find a crap load of programming and drawing tutorials all over the internet.


df3daf  No.16687384

>>16687371

I rather meant Godot specific 2d tutorials


4abcc8  No.16687390

YouTube embed. Click thumbnail to play.

>>16687384

again you can find a ton of that stuff on the internet. You just need to search for it on a search engine that doesnt censor search results.


df3daf  No.16687395

HookTube embed. Click on thumbnail to play.

>>16687336

just found this which fits perfectly to the demo project

damn I just had to search a bit, I feel stupid now


412998  No.16687487

>>16687336

>any beginner tips?

Yeah, don't mock my dude Ulillillia. He's a model of overcoming difficulty.


56dedd  No.16687498

>>16687395

>I feel stupid now

Then you're on the right path. If you go a week without feeling retarded, you are probably missing something important.


df3daf  No.16687516

>>16687498

I'm a software developer so I feel stupid 24/7


26b7c8  No.16687538

File: 1588114fb07ce98⋯.png (11.3 KB, 447x378, 149:126, b656eea44b0715d78283440aca….png)

>>16687498

>If you go a week without feeling retarded, you are probably missing something important.


dc7c00  No.16687604

>>16687336

>I want to make a 2D chess game for the beginning

You will get nowhere with this mindset

You gotta try to make the biggest ultimate supreme VRMMO with professional voice acting :^)


6f482c  No.16687680

>>16667035

You can really make bank in a big company being an engine dev. But I dare you to ever release a good game.


1f2607  No.16687927

>>16686609

no engine, i'm winging it from scratch starting at 0 experience so it's not the most efficient.. I was wrong the mm wasn't the reason for the frame drop.

>>16686620

no_


a93cd6  No.16688291

>>16687927

Then how the fuck should it slow down? You're at worst, doubling the number of draw calls, and even then it should be negligible


26b7c8  No.16688811

File: 715bcb3a32ab248⋯.mp4 (10.59 MB, 1600x900, 16:9, facing the direction you'r….mp4)

The "player" now moves based the directions the camera's looking, rather than the tank-esque way that's fixed on the X and Z axes. The cube also faces in the direction you're moving, meaning that I can now also rotate 3d models. I thought I knew trigonometry well enough, but what wizardry atan2 actually is, I doubt I'll ever understand.

Implemented extra checks for controllers too, since I finally have a use for them. The game swaps between the currently active device automatically, and I have one command that retrieves the required input from whatever said active device is. Means that I can punch in one value and the engine takes care of the rest, so that's neat.

In some cases, that's not really possible, however. For camera rotation, for example, the camera rotates based on how much the mouse moved since the last frame, whereas with a gamepad, it rotates based on how much the stick is tilted at all times. For cases where the implementations have to be so different, I just have to do a manual check.

Now, either rotating the camera vertically is going to be much easier than I think, or much harder. After that, loading in actual .obj models. That shouldn't be too too hard.


26b7c8  No.16688820

File: 058647c401cb5c9⋯.mp4 (6.5 MB, 1600x900, 16:9, rolling as you move, but n….mp4)

File: 65c50f12fc5e37b⋯.mp4 (7 MB, 1600x900, 16:9, rolling around at the spee….mp4)

Here's some videos of things not working.


26b7c8  No.16688827

File: 22fa2e5798a4a4e⋯.mp4 (4.24 MB, 1600x900, 16:9, totally intentional.mp4)

File: daf716de9dfcb52⋯.mp4 (4.18 MB, 1600x900, 16:9, totally intentional 2.mp4)


1d3727  No.16688857

>>16688811

it's just arc tangent split into 2 args. atan2(y, x) is the same as atan(y/x)

you're just giving it a ratio, and it just gives you the angle that would give that ratio if you plug it into plain old tan


c43298  No.16689268

File: bbcd514592dba81⋯.jpg (16.7 KB, 369x392, 369:392, 1468286086387.jpg)

>>16687336

Reference to useful GDScript functions:

file_exists( var)

get_tree().root

get_node( var)

load( var)

preload( var)

instance()

new()

add_child( var)

remove_child( var)

get_tree.get_nodes_in_group( var)

front()

back()

pop_front()

pop_back()

"if node is Spatial:"

> node is a variable referring to a node instance

connect()

set_process( bool)

set_process_input( bool)

set_physics_process( bool)

func _ready()

func _process( delta)

func _input( event)

func _physics_process( delta)

yield( get_tree(), "idle_frame")

queue_free()

free()

weakref( var)

get_ref()

typeof( var)


a546d8  No.16689741

File: dc67c35c97f6088⋯.png (260.75 KB, 1320x569, 1320:569, ks23tex2.PNG)

File: 8129948d18113e4⋯.png (250.18 KB, 1404x485, 1404:485, ks23tex3.PNG)

I finished up a KS23 model I've been working on


4931fd  No.16689760


55821c  No.16689878

>>16689741

Very pretty.


5dee8d  No.16689956

File: 0ec1b04b36d0140⋯.mp4 (6.28 MB, 960x540, 16:9, shinji.mp4)

game


5dee8d  No.16690056

File: 51e8bd9f2a35177⋯.mp4 (3.71 MB, 960x540, 16:9, 2019-07-13 03-32-03.mp4)

game 2 electro boogaloo


d9a133  No.16691196

>>16689956

>>16690056

blender game engine?


b3b46c  No.16691210

>>16691196

That was removed in blender 2.80.


b69db5  No.16691312

is it worth putting grass in my game if it nearly tripples my polycount?

too little and it's obviously out of place

enough to look normal and framerate dips to 40


dcc487  No.16691318

>>16691312

Have u tryed making beter grass?


b69db5  No.16691324

>>16691318

it's just the density though

the grass could literally be a green rectangle and i'd still have the same issue


13885c  No.16691325

File: c0ddf3fd2ceb717⋯.png (170.5 KB, 461x466, 461:466, c0ddf3fd2ceb717c31cc6b4c4c….png)

>>16691312

If it doesn't run at 144 FPS then it's shit. Anything you can add within that, feel free to.


2e274a  No.16691326

>>16691312

no, dont sacrafice performance for grass of all things.


26b7c8  No.16691337

>>16691312

You can always try making it a flat textured quad, or perhaps 3 tris to make it more animated. Something to where it doesn't have to be as detailed and resource-intensive.


4931fd  No.16691352

YouTube embed. Click thumbnail to play.

>>16691312

The grass should be textured planes with many blades per plan, organized in a way that hides their true nature.


a93cd6  No.16691358

File: 353ad449083aec4⋯.png (177.23 KB, 372x372, 1:1, ClipboardImage.png)

>>16691337

>Every grass blade is a quad

>The bottom vertices are placed manually

>The top vertices are billboarded


dc7c00  No.16691626

File: ed5685580d09ffd⋯.webm (11.22 MB, 1000x472, 125:59, 2018-11-18_18-08-20.webm)

>>16691352

baby grass for baby developers

>>16691358

>Every grass blade is a quad

I literally see no problem with that

You can even cut it at different heights and watch as it grows back


a93cd6  No.16691635

>>16691626

Oh no, the quad part is fine, the shitpost was the semi-billboarding


683259  No.16691653

>>16691312

For grass, use hardware instancing

https://learnopengl.com/Advanced-OpenGL/Instancing

>Say you have a scene where you're drawing a lot of models where most of these models contain the same set of vertex data, but with different world transformations. Think of a scene filled with grass leaves: each grass leave is a small model consisting of only a few triangles. You'll probably want to draw quite a few of them and your scene might end up with thousands or maybe tens of thousands of grass leaves that you need to render each frame.


ac1eab  No.16691869

File: 62887c4b51d94e5⋯.png (1.02 MB, 958x540, 479:270, procrastination.png)

How's that procrastination treating ya?


a93cd6  No.16691941

>>16691869

3 weeks and 5 days until demo day, lots of time left!


26b7c8  No.16692081

>>16691653

Doesn't seem like instancing will play nice (or work at all, really) with older version of OpenGL, will it? It's a massive pain in the ass, every tutorial is written with at least GL 3 in mind, so most are borderline useless to me.

I suppose I have plans for batch draw functions already, so I'll be fine either way, but better optimization is always a great thing.


56dedd  No.16692169

>>16692081

If you are making your own game engine, why are you limiting yourself to an outdated version of OpenGL? Too far along and don't want to change now, or do you have specific hardware requirements that aren't compatible with OpenGL3?


26b7c8  No.16692193

>>16692169

I'm making a game styled after late 90s-early 00s 3D platformers, and there is no reason in my mind why such a game should be unable to run on hardware at least close to that time. Perhaps not 2000 exactly, but I have a test rig from 2004 with some parts from as early 2002, if I recall correctly.

The way I see it, if it will only run on modern hardware, then it might as well be running on fucking Unity or whatever other shit engines are out there. You can call it a personal challenge, I suppose.


3e9c06  No.16692256

>>16692193

>OpenGL2

Does that mean it'll compile on a Raspberry Pi? I was tossing around some ideas for an RTS or 3d action RPG using n64-esque graphics on the Pi, since I love low-poly stuff and the Pi. Something functionally fluid (full 60fps, smooth action) but looking like a game from the 90s.


56dedd  No.16692269

>>16692193

I see nothing wrong with aiming for old hardware. Then again, I'm the kind of retarded fuck who would rather learn Motorola 68000 ASM than use C on the Genesis. Will be nice to see an indie game that isn't pixel art graphics that requires Win10 and 8GBs of RAM to play.


26b7c8  No.16692326

>>16692256

OpenGL 1.2, actually. I have absolutely no experience with Pis or other microcomputers so I really couldn't tell you. It's something I can certainly look into, as I will be making Linux and Mac versions as well as Windows.

>>16692269

Wouldn't running an "actual" language, if you want to call it that, on one of those old consoles cost a lot in terms of performance, or would a compiler take care of most of that?


d17ec5  No.16692458

>use a goto statement within an if/else branch

>performance goes to absolute shit

what the fug


56dedd  No.16692503

>>16692326

Probably, but the C compiler/SDK for Genesis is pretty damn good. Unless you are pushing the limits of the console, ASM isn't really needed for Genesis programming. I just went that route since I prefer ASM to actual languages. I'm a control freak and only ASM gives me that direct hardware access control.


26b7c8  No.16692535

>>16692503

From what little I know of ASM (mostly relating to the NES), that's the route I'd go too if I was making a console game. Shit seems fascinating, if complicated.


fb247c  No.16692731

>>16692503

Aren't you the guy porting Undertale to the Genesis as a shitpost?


a93cd6  No.16692744

>>16692458

Is this within a tight loop? If so, it might fuck with the compiler's ability to auto optimize things


a93cd6  No.16692882

My engine allows only one SFML.Window object at a time. I cannot think of a single situation where I'd want to have more than one OS-level window for a game. I've seen really shitty shareware games from the early 2000s that did, though.

This isn't something I should put on a list for a future todo is it?


5d2ed1  No.16692889

>>16692458

Might be blowing the branch predictor. Or maybe your code is just wrong now, gotos are easy to fuck up.


13885c  No.16692894

>>16692882

Might as well add support for it while you're early in enginedev.


b3b46c  No.16692899

>>16692882

Ignore what >>16692894 says and keep your scope reasonable. It introduces a whole bunch of complexity in regards to sharing resources, doing efficient draws, vsync, etc..

As for a situation where you would want it; think of editing tools. For those its very convenient to have multiple windows that you can use your OS hotkeys to switch between.


a93cd6  No.16692909

>>16692899

>>16692894

Well, within a game context, I can't think of a reasonable use, unless you're trying to be one of those meta memefag 2deep4u style games.

If I'm creating an editor for my game, it would either be inline to the game proper (eg using only one window), or else an entirely separate app using normal Windows shit, because as shitty as that is, it's still more robust than any elaborate thing I'd implement though I wouldn't mind making a simple UI stack for my game projects, but that's another project down the line


13885c  No.16692964

>>16692899

I don't know about vsync but how is sharing resources hard? And if you're concerned, you could just design it so that with 1 window it's the same as now, but with more windows it gets less efficient. At least the option will be there.

>>16692909

>unless you're trying to be one of those meta memefag 2deep4u style games

Maybe some day you'll get a cool idea involving multiple windows and want to try it. Or maybe you want to do something that isn't a game, not that unusual for enginedevs I think.


a93cd6  No.16692978

>>16692964

Well with SFML its just a light media wrapper over OpenGL for simple 2D games; for more elaborate projects, I'd probably want to work with it directly because every layer of abstraction kills performance. For example, I'd never be able to make something like Sigma anon with my current setup.

But for what it's worth, it wouldnt be too much effort to enable multiple windows in this case, most of the heavy lifting is done by SFML or thr client code


998efb  No.16693040

File: fecbb1f87e59322⋯.png (28.58 KB, 800x600, 4:3, Sigma Editor II (Pelles C ….png)

File: 038a79de50b005e⋯.png (1.24 MB, 1920x1017, 640:339, Sigma Editor II (Pelles C ….png)

I have a serious problem in my code, this image shows it but it's hard to explain, basically my bounding boxes which I use to derive portals from are derived from the polygon leaves of my BSP tree, however now that I can compile more complex geometry I have leaves that do not contain any polygons. So the portals are not generated, and so the PVS generation, which uses the portals to build the PVS, now crashes. I have to derive bounding boxes from the planes in the BSP tree, so i'm working on an algorithm for that, it's very inefficient the way I am thinking it up, but that's OK because it's an offline process. It essentially becomes an O((n^3)!) algorithm for determining the smallest possible bounding box (which is the correct one) that involves eliminating planes as long as that makes the bounding box smaller, until the bounding box no longer becomes smaller by eliminating planes. (this is the O(n!) , generating the bounding box is O(n^3) because I have to test every combination of 3 planes for a point intersection) Then add on the time it takes to generate these lists of planes from the BSP tree (which is only an O(2n) at least but obsessively calls the allocation functions)

>>16692326

>>16692256

There are a bunch of ways to do this, you'd really have to write the setup for grass several times and in several ways to target all generations of hardware though. In OpenGL 1.1 you can just make basic billboard grass, it's going to be slower inherently though, because plain OpenGL 1.1 is so barren, but it shouldn't be that bad… you can batch "patches" of grass and speed this up with VBO's, if you don't want the grass to be very interactive (but a basic level of interactivity can be achieved by using a matrix to "shear" the model when the player walks over patches of grass)

In later cards, like 1999-2003 you can use the ARB assembly language shaders to achieve per-blade interactivity, with the vertex shader, it should be doable, past that you have OpenGL 2.0 and GLSL shaders which are kind of self explanatory,

In OpenGL 3.0 instanced rendering is useful and should save memory, but largely remain almost the same, but with anything from OpenGL 3.2 and up you could generate the grass itself in a geometry shader. There's no need for an actual model of the grass at all. The vertex format can no longer describe an actual model but rather the position of the grass and other things to construct a matrix describing it, that you can then feed into the geo shader (and certain info related to the player can be derived in the vertex shader, so you can leave it out of the format)

Beyond that there are tessellation shaders and stuff now in OpenGL 4.0 and Vulkan, you could do a whole lot of things with that, and that has got to be the most modern way but I don't understand enough about tessellation yet to know how to use it.

So, there are really 6 ways and probably a lot more to do this, it just depends on what hardware you're the most interested in to see what you want to implement, really

>>16692978

I'm just using a simple 1 window setup right now. I think you'd be able to do the same thing, but the problem is SFML does something weird behind the scenes setting up OpenGL that gave me issues when I used it once, but I don't know what you're up too. You've probably got it all working.


b69db5  No.16693049

So what do you do about health visualization?

i've got healthbars and i can't decide when/how i want to show them


13885c  No.16693053

>>16693049

I think you should reconsider if gamedev is what you should be doing.


b69db5  No.16693058

File: 302ec8b3221f818⋯.jpg (136.96 KB, 600x453, 200:151, 302ec8b3221f81830cd41b01d2….jpg)

>>16693053

i dont even like video games


998efb  No.16693230

>>16693040

https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_pixel_buffer_object.txt

Thinking about it you could even use the method they describe: "Render to vertex array" to run an ARB/GLSL fragment shader into a VBO. That would mean you can generate all of the geometry on the GPU…. this is almost as good as a geometry shader… it would be interesting to see the differences between those two methods in hardware.


8fccb0  No.16693344

File: 94f5a5f141b6449⋯.jpg (80.77 KB, 700x700, 1:1, qsfv 94f5a5f141b6449885cf4….jpg)

I want make roguelike!


b3b46c  No.16693383

>>16693344

do it faggot I dare you


56dedd  No.16693538

>>16692731

No, I've never even played Undertale. I picked up 68k ASM because I wanted to make an RPG-ish version of Outfoxies with robots. Think a 2D version of Armored Core. I got deep enough into it to make it boot on real hardware, and even had it detecting which controllers were plugged in, then I abandoned it to make something people are actually likely to play in Unity. I thought that guy was using the Genesis C SDK?

>>16692535

ASM is fucking awesome. The complexity is two-part. On the one hand, you have to manually do everything you would normally do in a single command in C/C++, meaning you are writing five pages of opcodes to do simple tasks. The other half of the complexity is you need to do all your own memory management down to the byte. You forgot you were using 002000E as a counter? You are proper fucked now mate. The main complexity of programming for an old console like NES or Genesis is needing to keep track of your program cycle by cycle. You only have so many CPU cycles until you are on the next frame, and there are no exemptions. You gotta cram your entire game loop including reading controllers and drawing the screen within the cycle limit. Genesis makes this a bit easier since you can just dump all the data onto the VDP and tell it to handle it, but you still need to make sure you are filling the VDP during the refresh period.

You give up ease of use, quick code, and easier debugging in exchange for absolute control of the console down to the register level. For 90%+ of people looking to make a Genesis game, the C SDK will handle it just fine. For control freaks like me, ASM is the only option.

As a side note, digging out information on the Genesis VDP led me to discover the Genesis was built to accept twice as much VRAM as the console came out with. The VDP actually has registers for dealing with the additional VRAM, and some hackers out there have actually managed to modify a Genesis to have double the VRAM. This is more useless than you can imagine, since the additional VRAM breaks the original memory mapping and makes all Genesis games not work. Only a game programmed to use this additional VRAM would work in that config, and not even the most accurate Genesis emulators bother to emulate the unused VDP registers, meaning you couldn't test without a modded Genesis. Yay for useless info!


683259  No.16693579

>>16692081

No, you're right. I don't know when the instancing extension was added, but certainly after GL2 (I think).

Batching all your grass draws will really help. So that sounds like a good plan.

If you used GL4 you could do it all in a shader, generating the vertex geometry there too. But that's out of the question if you are using older GL.


683259  No.16693591

>>16692964

OpenGL cannot share textures, VBOs, etc. across GL contexts. Each window uses a separate GL context. You also have to be careful calling GL functions - being sure you have the correct context active. You may end up using 2x the VRAM if you need to use all assets between both contexts. I've managed it using GLFW and GLEW but it is a pain and you have to be careful and it's messy.


02789a  No.16693593

File: a74a3f10c6f219a⋯.png (594.27 KB, 1054x874, 527:437, port.png)

progess


a192ef  No.16694788

File: 14e47433734170b⋯.webm (1.35 MB, 1280x720, 16:9, swinging2.webm)

>tfw you suddenly make good first-person swinging

>>16693344

Since you got dubs:

http://www.roguebasin.com/index.php?title=Articles#Implementation


206d36  No.16694838

>>16694788

How did you do this?


281185  No.16694847

>>16694788

Are you making a shootan game anon?


a192ef  No.16694919

>>16694847

It's a stealthan game, I'll nerf the swinging power based on distance from the bottom of the rope and also restrict reel use. I'll throw the unaltered version into a blank project, it definitely has potential for a different kind of game.

>>16694838

It's standard fps movement, expect when you're grappled. If the player is further from the grapple point than the initial grapple distance, I slide their velocity vector along the normal pointing from the player to the grapple point, and move them back in range of the grapple.


f320e3  No.16694942

>>16694788

Physics are pretty wonky. At 20 seconds you come to a corner and just stop for no explicable reason. Then the next big swing at 24-28 seconds from almost a dead stop ends up putting the character higher than their starting point which I think is impossible.


1a99a5  No.16694959

>>16693593

Jesus dude I remember seeing this when I was still in goddam college. What are ya making one wall per year?


392541  No.16695395

>>16680548

>>16685986

The voodoo magic is culling pixels based on how close the normal is to being perpendicular to the view direction. Since normal interpolation isn't perfectly spherical it estimates a perfectly smooth surface using the distance from the pixel to the vertex.

>>16680552

Nope, just did it by hand in what I thought would be the most logical way. On a related note I originally tried using a voronoi diagram for the humidity map but it looked terrible

>>16694788

fantastic


998efb  No.16696022

File: e746e7003453659⋯.mp4 (1.95 MB, 1280x720, 16:9, LIGHT_IT_THROW_IT_NOW_DAMN….mp4)

>my recursive function doesn't work

>it has nothing to do with my memory allocation or anything, but a fucking namespace collision the compiler didn't notice for some reason

At least I can use the debugger again. My program was causing the debugger to crash for several months (I forget how long) but now it is able to work correctly, so that's good. Maybe I can even upgrade the compiler on this project to Pelles C 9 without crashing the compiler anymore.


d17ec5  No.16696209

>>16692744

yeah it's in the main loop

>>16692889

i'm using the gotos right but yeah it's definitely the branch prediction, just doing another if/else yields better results

Got to remember that the compiler can only do so much but can also get in the way.


d9a133  No.16696309

>>16694788

>no Tarzan sfx

missed opportunity

I want to rappel into windows with those ropes


26b7c8  No.16696444

Does anyone know if there's a way to track how many faces GL culls with glCullFace? Or more specifically, how many it actually renders after culling? Either way.


b3b46c  No.16696844

>>16696444

If you accept inefficiency and just want to count triangles that are facing away from the camera and thus would be culled:

>Disable culling

>Give each triangle its own id

>In fragment shader; read "gl_FrontFacing" to determine whether the triangle is facing the camera

>Write to an SSBO with index[triangle id] that that triangle is front or back facing

>After the draw completes, read SSBO data and count the amount of triangles that are front or back facing.

>Triangles that don't enter rasterization wont be written, so be sure to initialize the SSBO with a third "non-visible" variable.

There's no easy "get triangles culled" function/query. Probably because culling relates to the more complex task scheduling stuff and adding overhead to that is a really bad idea.


a93cd6  No.16696849

>>16696209

Gotos are really great if you're working within nested loops and neat to exit, though.


eb927c  No.16696864

>>16696849

You could just return, exit, or break the uppermost while loop instead of GOTO.

I'm not part of the "never ever use GOTOs" party, but loops already are checking to exit some other way. This is like jumping out the window instead of opening the door.


b3b46c  No.16696872

>>16696864

He said "nested loops". Sometimes you want to break out of multiple loops in one go, and goto is the best way to do that in most languages.


a93cd6  No.16696880

File: 33324f5a27b8880⋯.png (34.6 KB, 368x752, 23:47, ClipboardImage.png)

>>16696864

Not necessarily. If you have a tile grid or something and you're iterating each XY value, and the break condition depends on a tile, you couldn't know any tile values with just one loop.

Pic related is 3 different ways to write nested loops. Let's say it's a performance-critical map generator. Those things can take a while so we want it to be as fast as possible.

The first is awful because it involves three checks to exit, as well as writing a variable (sentinel). The second may be the best, because it has one check and exits immediately. I've used the third method a few times. It depends on what you need to do, and how your other code is set up. Generally way slower because of the indexing math required, but if you store your shit in one big array, rather than multiple grid-like arrays, your code might look like this

(In practice, I'd usually continue to the next tile rather than exiting the loop early, depends on what you're actually doing)


13885c  No.16696946

>>16696872

It's amazing that languages still don't let you give arguments to "break" to define how many layers to break out of. For example break(2); Seems like such an obvious feature to me.


a93cd6  No.16696961

Goddamn, SO is so fucking useless

https://stackoverflow.com/questions/682615/how-can-i-get-every-nth-item-from-a-listt

>Just use a LINQ query!

>Involves two static classes

>No just use a for loop

>Yeah but you'd have to duplicate it everywhere, just use (the same length) LINQ query!


eb927c  No.16696968

>>16696880

Those nested loops should be in a function, which returns the needed information. When you reach the needed information, just return(x) instead of fucking around with exiting.

And besides, all for loops get compiled to while loops, which get compiled to an if and a goto. Any good compiler will optimize runtime if you work with it, so that exit variable will disappear if you try debugging the optimized version.


a93cd6  No.16696974

>>16696968

>Those nested loops should be in a function, which returns the needed information

Like I said, it depends on what you're doing. I wrote in the mindset of performing an operation on everything, rather than searching for a specific value.


b3b46c  No.16696984

>>16696968

Using a goto instead of a separate function is cleaner. It's also the standard solution in practice.


a93cd6  No.16697221

File: 7c9c42da0150186⋯.png (98.79 KB, 748x821, 748:821, ClipboardImage.png)

>Asks specific question

>Umm, that won't ever happen though heh heh :)


b3527a  No.16697544

File: 3316393cfc67cee⋯.png (4.91 KB, 642x498, 107:83, teapot.png)

File: 281ed12c92b21b8⋯.png (2.94 KB, 594x404, 297:202, teapotii.png)

I thought everything was working as I had it in fixed function just now with programmable pipeline, but it looks like something is different I just copied the projection matrix from gluPerspective, but the teapots don't look the same. I didn't do any version control so I probably changed something else because it is definitely doing perspective projection. This is the first time I've actually gotten working 3D math in my engine. I've done 2D before because the matrices are easier. I have gotten to this point and given up before, but having a bunch of platform stuff written was actually a motivator to work through the 3D math stuff. I understand it much better now.


998efb  No.16697621

>>16697544

https://apitrace.github.io/

Post your apitrace, what matrix operations are you doing? You should just be translating the teapot in front of the view frustum, but it looks like you're translating it up as well


a93cd6  No.16698194

File: 83ed7673698dbcb⋯.png (67.79 KB, 953x739, 953:739, ClipboardImage.png)

Actual progress post for a change. I finished my a simple pass of my "engine" layer that's build on top of SFML, so now I have about 3 weeks to work on game specific stuff for my game/demo day.

I'm not sure which approach to my game state is better. The first way is to shove all my game data on one monolithic object called GameState, then create specialized Controller objects with methods to modify the state, and these would contain all the operations and logic. The downside is an extra layer of abstraction (eg going state.whatever for every variable) and potentially large amounts of exposed variables

The second approach would be to make GameState rather small and contain only simple things, like references to the controllers and the elapsed time. The downside here is that accessing some data might be unintuitive. For example, if an Actor wanted to check for collisions it wouldn't check the Actor Controller's data, it would have to check the Map Controller, because it maintains the contents of each tile.


442347  No.16698305

>lose progress because of a powercut

How do you recover from this, I mean in terms morale, I'm just going to go straight in and rebuild my work from scratch, but that's still a lot of work.


8566ab  No.16698308

>>16698305

so your data got corrupted? Because if it was just you neglecting to press ctrl+s every few seconds, I have bad news for you


442347  No.16698315

>>16698308

I should have stated that it was only 3d work, but still, that represents a lot of work, since the assets are highly detailed.

I save regularly, the actual files have been corrupted, for some reason blender also corrupted the backup it generates.


8566ab  No.16698320

>>16698315

>for some reason blender also corrupted the backup it generates

oh boy, sorry to hear that. I'd say get an UPS, it should allow you a few minutes to save your work and wait out the brownout. I got one and it's been a great boon. A simple 400 watt should be enough, there are some inexpensive ones.

About the lost morale: work on something else for a while, then switch back to remaking what you lost.


442347  No.16698323

>>16698320

I just went straight back into rebuilding my work, now I'm just seething while redoing it, thanks I guess.


8566ab  No.16698329

>>16698323

so what were you making?


442347  No.16698332

>>16698329

Top Secret, I was hoping to meet demo day, to show what I'm working on, but that's not going to be happening, at least I don't think so.


640dc2  No.16698333

>>16698194

the second one is way better and will perform faster


412998  No.16698355

>>16698194

Second one approaches ECS and is superior, if you're willing to step away from the "simplicity" of OOP.


442347  No.16698442

>>16698305

Accidentally clicked the wrong menu and found that Blender keeps a large array of backups from former sessions, and managed to recover my work. Kind of wish I new about this earlier. Just a heads up in case others don't know about this functionality.


683259  No.16698484

>>16698194

>extra layer of abstraction (eg going state.whatever for every variable) and potentially large amounts of exposed variables

If you're accessing member variables to do the work, it really isn't abstracted, is it? Not your fault really. Failed promise of OOP. The 1990s Java cancer isn't dead yet.

Consider a third way. Do not associate any of your data with your logic using classes. Do not use a single class. How would you do it? How would you do it using only structs, arrays, and C?


b3527a  No.16698600

>>16698332

turns out I didn't copy the perspective matrix correctly. the thing on the diagonal was cot(fovy/2) and I had it as cot(fovy). This is what I deserve for copying blindly.

>>16698332

Worried someone might steal your super secret ideas guy idea?


b3b46c  No.16698658

>>16698332

Post your idea so I can steal it and provide no credit.


d02695  No.16699648

File: 70885bddd6b5141⋯.mp4 (7.14 MB, 1280x720, 16:9, 2019-07-17 00-35-47.mp4)

After a gorillion years I've finally done something new, I was having a lot of percision problems on my older physics engine so I remade it focusing only on AABB/plane/sphere collisions, and I've finally been able to stabilize my system a bit.

I can finally do something else besides physics thank god


d174f1  No.16699668

>>16699661

I won't idolize your ass once Mark and Pewter are through with it.


a93cd6  No.16699783

>>16698484

But the data has to be kept "somewhere". I don't want statics all over the place


a93cd6  No.16699793

>>16699648

So how does the AABB collision stuff work? Do you just maintain a simple rectangle, for example, then preserve some kind of transformation matrix associated with it?


b094c8  No.16699892

Engine is ~33% done.

Weighted for a demo: 66%-ish.

Take that niggers.


442347  No.16700098

>>16698600

>>16698658

My ideas are good, but I'd rather have something to show before I really talk about it.


fa9721  No.16700103

File: 824cdfed376ace6⋯.jpg (38.89 KB, 906x1024, 453:512, 1549286168211.jpg)

This post is mostly a rant. I'm disappointed with myself. Everything has been a struggle, between an awful machine, shitty internet, and other personal bullshit, I dropped this hobby for months. Checking my last project, I've forgot everything. I've never finished a single game or demo. I am 27 yo. I started this passion when I was 16. Toying with various languages, frameworks, and engines. Not a single project was finished. It doesn't help that I forget stuff so fast I have to relearn shit from scratch every time I stop programming. Not to mention that when a project gets bigger than my small memory can handle, my brain just crashes and I get immediately demotivated. It doesn't help that my life is in such I state I can't commit to anything. It hurts bros.

What's funny tho is that I finally solved something that bothered me for so long. Which is sprite masking. You know that effects which makes a body part flashes white or red on hit in 2D games? or making a sprite fades based on the values from another image? Yeah, something as easier as that is no simple task without shaders, or doubling the sprite count for the flashing effect. I despise shaders because my machine is stuck in the old ages of openGL 1.1. I used software openGL for a while, which made running engines like Godot and shaders possible. Needless to say it way slow. 3D was impossible of course. But 2D was serviceable, as long as I used a really small resolution, which isn't bad if the game uses pixelart. Needless to say, it wasn't enough. I grew to despise it until I dropped it. I was working on FTL clone at the time. I wanted to make a game that I can actually run on the most outdated machine.

For anybody who's curious about the solution, it was simply blend modes. SDL2 and openGL support custom blend modes. With a bit of tinkering, you can make a texture use the alpha of another sprite by blitting the mask with a blend mode that ignores the color of the mask. Of course, I never found this solution anywhere in my long search, the answer is either a shader or doing it pixel by pixel.

I still have other problems to solve, like syncing sound with gameplay and providing modability through shared libraries alone. I'm trying to learn pixel art while I wait for Nim libraries to catch up to the current version. There's nothing worse than finding a language you're comfortable with only to find that almost every library is deprecated. But hey, at least the update SDL2.


b50d07  No.16700253

>>16700103

Damn, it sucks to hear that. Have you been doing everything on your own so far? It kinda sounds to me like you tried to do a bit of everything instead of focusing on a specific discipline. Nothing wrong with that but it sounds like you need a team.


a93cd6  No.16700257

>>16700103

I can relate. I've been devving on and off for about 10 years and have nothing to really show for it, no demos or interactive projects, period. Every time I start a project, it has a certain theme in mind, then I drop it at some point and start over.

About 2-3 years ago I got the smart idea to make my own engine so even if I keep restarting, I can add it to a carefully curated engine and use that as a sort of checkpoint


b50d07  No.16700304

>>16700257

I guess I was lucky enough to look in the right places. I've been doing art stuff since I was 16 and decided to learn modelling about 3 years ago but most of it was on or off with very slow progress. Helped a few people I met but nothing came out of it really. Then around 2017 I joined a "collaborative project" with a bunch of other /v/irgins. Project died but we stuck together. Now two years later I've gotten much better at art and learned a bit of programming. One friend swore to become my blood brother and continues to do general devving and music, another one gruaduated as programmer and all of us have sworn to dev together. I can say that all of that helped me in my life.

I guess what I learned is that true friendship exists if you're looking for it and that humans work best as a pack.


998efb  No.16700309

File: 24cb3c807e06487⋯.gif (3.11 MB, 340x227, 340:227, 24cb3c807e0648740355f6f41f….gif)

>>16700103

>I despise shaders because my machine is stuck in the old ages of openGL 1.1

What graphics card only supports OpenGL 1.1? What's your GL_EXTENSIONS string like? It's possible that you're missing out on features that can make your life easier while programming this stuff.


b69db5  No.16700315

>>16700309

>What graphics card only supports OpenGL 1.1

my 8 year old laptop with a built in intel gpu for one

still surprised it could even run unity


a93cd6  No.16700345

Speaking of potato specs, what sort of technologies work on WinXP? I've sort of entertained the idea that my game would be good enough to be played by Russians and Japanese players on way old system, even though thats less than 0.11% of the PC market, according to Steam

https://store.steampowered.com/hwsurvey/Steam-Hardware-Software-Survey-Welcome-to-Steam


a851b5  No.16700366

>>16700315

Unity has a support for OpenGL 1.1? I guess I need to stop wasting my time learning C and use Unity instead then :^)

>>16700103

>Not to mention that when a project gets bigger than my small memory can handle, my brain just crashes and I get immediately demotivated. It doesn't help that my life is in such I state I can't commit to anything. It hurts bros.

It might help if you keep a note somewhere lying around either in paper or in computer form that you frequently visit where you gather ideas and add or remove new ones as you see fit, and maybe try prioritizing a certain feature over other so that you at least do 1-2 small/minor task a day or something if you are still motivated enough for it which is several times better then not having made any progress at all even when it is just fixing a bug. Rome hasn't been built in a day and your game idea is not much different that it takes a lot of time to do something great.

Unless as you have mentioned that you have too much personal issues that keeps you motivated enough to keep you going, well that sucks to hear and I can only hope it will get better for you soon.


b69db5  No.16700374

>>16700366

>Unity has a support for OpenGL 1.1

no, i just meant that i was surprised i could run anything 3d related, not opengl in particular


998efb  No.16700386

>>16700315

No, I mean that seriously, because so few hardware is actually limited to OpenGL 1.1. It makes me think that it's more capable than you think it is. I have an 8 year old laptop with a built in Intel GPU, and it supports OpenGL 2.0 (granted it's a slow card and I would rather have more speed than features). I have a laptop from 2003 that has a vertex and fragment shader using an ATI Radeon Mobility 9000.

I think you have been getting stuck by a lack of resources, and you probably have shaders… although to be fair you can do quite a lot without them. I have a special rendering path in my game that can do everything, just restricted to OpenGL 1.1 only, no extensions at all. (Of course behind the scenes the driver just optimizes this to use the hardware features I have. It's not that slow)

What does this say? It should give a summary of all your card's OpenGL capabilites: https://a.cockfile.com/lgoIxQ_OpenGL_hardware_test.zip

>>16700345

You just have to make sure that all of your libraries are compiled to not call into OS features that don't work on WinXP. The main problem is when something expects a function in system32 that only exists on windows 7 or higher. It's the same situation with versions of windows lower than XP. For example windows 2000 doesn't have the raw input API, so you have to check if the dll file (I think user32.dll?) contains the API or not, and have a code path that doesn't try and use it. That's all there is too it really.


a93cd6  No.16700407

File: 814fd4f554467d2⋯.png (68.74 KB, 589x511, 589:511, ClipboardImage.png)

wew


b69db5  No.16700409

>>16700386

i already have a computer and don't feel like turning the laptop on just for this, but a year or so ago when i checked it lierally only supported OpenGL at around 1.something

specifically remember this because i was trying out a demo day game that wasn't working


998efb  No.16700486

>>16700409

The problem is that OpenGL version doesn't tell you a whole lot. OpenGL in 1996-99 is very different from OpenGL in 2004, but it still says stuff like "1.1" and "1.3", and people kind of lump them together even if the cards are pretty different. Mostly because the majority of new features existed in extensions that don't come up on the newest version.


c7df42  No.16700513

>>16700409

>>16700486

One should also keep in mind that if you use old or the default drivers that come with Windows it might not support all the features of your card. So your OS might report only GL1.X compatibility whilst in fact the card might actually support newer versions of GL with the correct driver. Always use the latest driver from your graphics card manufacturer website.


235328  No.16700722

File: 8a051109448ddf6⋯.png (22.1 KB, 745x716, 745:716, 0717130550.png)

>>16700486

This is what I have, surprisingly I've forgot about the exact version. I see GL_ARB_vertex_program and GL_ARB_fragment_program, but I honesty never worked with extentions and I don't think I have the capability to go that low for something that will certainly be slow. From my experience running old games, using the directX renderer was always better than openGL one, the later kept lagging especially when any shadow or lighting is involved.

I happen to be unlucky with the intel integrated graphic card I have, as they never bothered to update the driver for windows, somehow the same card supports openGL 2.0 on linux alone, but not without countless bugs and crashes.

Minor rant: I'm sad that I can't play agdg games even with software openGL because my machine is 32bit. It seems that a lot of people don't bother to compile/export to 32bit. I don't understand why would anybody do that when they have the option. Is there any benefit at all for most games to be only on 64bit?


b3b46c  No.16700788

>>16700722

>Is there any benefit at all for most games to be only on 64bit?

Yes. There are benefits. It's the exact same story about only targeting certain OpenGL versions, which is that you're guaranteed to have some features and have an overall simpler to develop and maintain project.

So what features does amd64 have over i386? The obvious first one is that you wont run out of memory space. On a 64-bit system with swap spacing, your only cost of using excessive amounts of memory is a slowdown, and not the terminal error of running out of memory space.

The second feature is that amd64 requires SSE and SSE2 to be present. This actually has way more benefits than you would immediately expect.

For starters, compilers will output SSE/SSE2 instructions for amd64 by default, but output x87 for i386. x87 is a REALLY FUCKING TERRIBLE floating point instruction set that suffers from a myriad of problems, which means you have to fuck with FPU registers to produce deterministic results. SSE on the other hand has well defined floating point arithmetic that "just werks". In other words, if you require a deterministic simulation, like RTS games or replays, then an easy way to accomplish this is to just not make a i386 build, no further effort needed!

Is it true that a developer can tell the compiler to assume SSE and SSE2 instructions are present for i386? Sure. But how much does this change the situation?

Truth is, not that much. Every processor that supports SSE2 also supports amd64. You might be running a 32bit OS, but chances are your CPU actually supports 64bit fine. This technology is also turning 19 years old this year, which means that processors not supporting this are actually so fucking ancient that it draws serious questions about the actual performance.

At the end of the day, you have the weigh off the advantage against the disadvantages. My project relies on a deterministic simulation and since I want to be able to ramp up the entity count, also needs some performance. I could put in the extra work and get it to use x87, or I could enjoy the no-effort speed benefits from SSE and all its variations. I chose the latter, and tossed out 32 bit builds. I'm already requiring OpenGL 3.3+, so this is completely reasonable for me to do. Also saves me the extra work of setting up and maintaining another compilation target.


26b7c8  No.16700801

>>16700309

A GeForce4 MX440, for one. Not quite 1.1, but it is 1.2. That's what I have on my potato test build, a graphics card from 2002.

https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units

This is pretty useful if you need something of the sort.

>>16700486

https://www.khronos.org/opengl/wiki/History_of_OpenGL

This is pretty helpful, I find.


998efb  No.16700887

>>16700722

The thing about it is that the slowness is deceptive. If you optimize specifically for your own hardware, you should get some good results. Have you ever tried running some old demos on your machine? It's probably a lot faster than unoptimized games targeting modern hardware make it look.

Have you tried to run my demo? It's not much of a game but it does specifically target low end computers. It should be able to run quickly on your machine.

>>>/agdg/33719

There are also other very optimized engines and demos, like this one:

http://advsys.net/ken/voxlap/pnd3d.htm

It has a specific rendering path for ARB assembly shaders.

>>16700801

I use that a lot, too… it is very useful, but also misses pre-GLSL shaders. My most difficult graphics card is an Nvidia Vanta (a TNT card with half the bandwidth, lower clock speed, 16MB VRAM…) which can't even run my engine at 60FPS consistently. I'm still at a loss for what to do about it…


a0822a  No.16700949

File: 63bd545c2708c42⋯.png (37.42 KB, 136x175, 136:175, 2018-01-02 18_58_39-FPS_ 3….png)

So which game engine is good for someone who can code but can't art for shit?


d174f1  No.16700954

>>16700949

No game engine will compensate for bad art. Even newer 3D engines will only look good if you know what you're doing.


b69db5  No.16700989

YouTube embed. Click thumbnail to play.

>>16700954

just steal every bit of uploaded art you can find


4b2957  No.16701212

>>16700788

That was informative. My dual core CPU certainly has SSE and SSE2. I think it's safe to assume some features will exist even in old machines. I never knew about deterministic behavior and floats problem. But it still baffles me to see some text adventures and single player games that aren't simulations going the same route.

>>16700887

>http://advsys.net/ken/voxlap/pnd3d.htm

Crashed with an exception. Using the software openGL DLL, it worked, so that certainly is the problem. Surprisingly it ran at a quite decent FPS, over a 100.

>my demo?

I had to tinker with the cfg of your engine since it started on a really low resolution. At first, it was running at an odd FPS, it was stuck on 33 with few raises, but never lower regardless of the resolution. Messing with the FPS in the config however changed stuff, after testing with 30 and 120 max FPS, it turns out that it always runs at a fraction of the max FPS. At 120 it ran at a solid 60 FPS, the controls where smooth and all and the texture was pretty crisp on 1280x1024.

However, when I used "r_fps 10000000" to see how far it can goes, it caps at around 110 FPS, the weird thing is that keyboard input had a huge delay, like 5 seconds or more, while mouse input and movement itself was smooth.

I've spent some time looking how to activate the editor before realizing i wasn't there.

Avast had a false (?) positive on the x64 build and deleted it, but x86 was fine

Definitely interested in seeing more of your project, 3D games that work on my machine without being buggy unity games bring tears to my eyes.


8808e2  No.16701253

File: 62a8c97cd7aded4⋯.png (212.88 KB, 912x482, 456:241, big fuck.png)

Why does the AnimationTree node in Godot not loop animations as well as make the character/amature two times bigger when at half blend amount with a blend2 node?

AnimationTreePlayer didn't do this shit, but since that's deprecated I wanted to move over to AnimationTree.


6910c2  No.16701260

>>16701253

Animations that loop need to be end with -loop in your 3d modeling software. You can also edit the animations and add looping there, but then you'll need to do that every time you reimport the model

For incorrect scales, you might need to check or uncheck the "bones in world space" option in the skeleton parameters.

If you're still having problems, try a different export format. I've had varying results with GLTF 2.0, collada, and .escn (the Blender to Godot export plugin).


998efb  No.16701271

File: 43e4e1695325eb9⋯.png (585.54 KB, 640x480, 4:3, sigma2_2019-07-16_00-25-36.png)

>>16701212

If you're interested, this is the most recent build, it should have fixed some of the issues you were having with it.

https://a.cockfile.com/DJ0K1N_sigma2_71719_test.zip

Just run it with -map hall2.sw4 , some of the maps in there are bugged and you shouldn't expect anything with a recent timestamp to work at all (i'm trying to fix some bugs in the map editor, pic related). Also in the config file change gl_ext_multi_draw_arrays and gl_arb_vertex_buffer_object to "1", I had them turned off testing my OpenGL 1.1 only path recently, and those two extensions help performance a bit.

You're experiencing bugs that I fixed since last demo day, for example what you were seeing there was a problem with the client and the server going out of sync at really high framerates, currently the engine uses uint64 timesteps instead of floating point which I was using during demo day for certain time calculations, I think that was the issue with it.

Did you try the /arbasm and /cpu paths for VOXLAP? The reason it runs so fast is because the code is very optimized, a huge portion of it is written in massive blocks of inline assembly.


8808e2  No.16701283

>>16701260

OK, looping now works fine, but the size issue is still a problem.

I can't find "bones in world space" anywhere.


998efb  No.16701498

http://www.pouet.net/prod.php?which=467

This is a cool demo that is made for the Pentium II. It's fully raytraced with reflections and per-pixel lighting, all in software, I think there is some way of turning off the rails and just flying around the level as a free camera, it's a real graphics engine… I think it's great.

>>16700788

SSE2 is supported on everything since the Pentium 4. You should be setting up your compiler right…. as long as you aren't writing x87 code, not a big deal… although if you were targeting such a slow CPU, you would have to write it… but that literally means you would have to be targeting a Pentium II, because the P3 has SSE… so you still wouldn't have to use x87! Although if I was targeting a P2 I would try and use integer coordinates and the MMX extensions, and see what could be done with that.

I can get your idea about not caring because you're using OpenGL 3 and don't want to write another rendering path. That makes a lot more sense.


4b2957  No.16701506


4b2957  No.16701523

>>16701271

Sorry for the empty post.

It seems that the FPS bug still persists (running at the fraction of the cap), but using a huge number works fine.

I failed to notice the difference when turning those options on and off, the FPS hovers between 140 and 80, depending on what's rendering on the screen.

Do you have any debug mode with precise timers to spot the difference?

>Did you try the /arbasm and /cpu paths for VOXLAP?

I'll look into it.


dc7c00  No.16701570

File: ae47c19af22672b⋯.png (28.94 KB, 708x200, 177:50, ClipboardImage.png)

Which looks better, right or left?

red = bad, white = neutral, yellow = average, green = good


2d05fc  No.16701597

>>16701570

I'm not entirely sure what it is I'm actually looking at, but the right picture makes it astoundingly clear which parts are "good" and which parts are "bad." The left just makes it look like 90% of the bar is "average" and a small bit is "bad," while on the right I can clearly see that some parts are "good."

Not sure how it would be for colorblind people. They might actually get more out of the left one, as far as I know, but for someone with regular vision the right is far clearer.


998efb  No.16701605

>>16701523

If you're not seeing a difference, I think it's probably because an intel integrated GPU doesn't have seperate video memory, it's just system memory, so it literally doesn't matter. The optimizations there are just related to memory locality.

I guess that is the limit for such a trivial scene, but, I hope that you can check out the engine a little later once I have to do stuff that pushes the hardware a little more. I did have to look it up and Intel does confirm that it uses the same memory here: https://www.intel.com/content/www/us/en/support/articles/000020962/graphics-drivers.html And so this is an interesting situation, because what if you used the CPU to do shader effects on textures and stuff? In fact I think that is how these GPU's implement the programmable pipeline, because it's shared memory they can just execute them in software… so "features" are cheap. It's just a question of speed. If you could map the memory for a texture onto a pointer, you could easily do your own fragment shader, whatever effects on it. The only downside is that if you cant map it , you would have to do a copy. If you wanted to streamline that, you could even create one texture space, and then map the UV coordinates from visible polygons on the scene into this texture space, having one texture for all normal maps or whatever that gets applied onto everything else. An interesting idea… but probably not as fast as playing intel's game.


b3b46c  No.16701613

>>16701498

>SSE2 is supported on everything since the Pentium 4.

Pentium 4 also supports amd64, so it can run 64 bit builds just fine. Just not on a 32bit OS.

>P3 has SSE

SSE doesn't include double-precision floating point.

I'm not doing anything like writing instruction set specific code. I'm just trying to keep my project into reasonable scope so I can keep my productivity going. Excluding 32bit, and by extension, x87 with all its headaches, helps a lot with that.

Yes, I can configure the environment and produce a 32bit build that uses SSE & SSE2. Yes, I could just make x87 work by fiddling with the FPU registers. Shit, I could even use integer coordinates and do fixed point math instead.

But I have to put the cutoff somewhere, and I decided to put 64bit & OpenGL3.3 as a requirement. If you have a system with an OpenGL3.3 compliant card, chances are you have amd64 CPU in there as well.


998efb  No.16701624

>>16701613

For you, it's totally reasonable. But P4 is not one platform, only Pentium 4 CPU's after 2004 support 64 bits. But i'm not saying you should bother compiling for old hardware. Just bothering about the specifics.

>SSE doesn't include double-precision floating point.

Why would you ever use double-precision floats in a game?


3e8cb6  No.16701626

File: bb2bf59e29bb1db⋯.png (13.54 KB, 352x200, 44:25, betterbars.png)

>>16701570

Is the gradient necessary? It makes shit look incredibly unclear. Why not just separate the bar into different, distinct parts? If it is green > yellow > white > red, why do the bars look like they transition from white to yellow to green back to yellow back to white and finally to red?

If you have four separate things indicated, stuffing them into a single bar is probably a bad idea. Is this four separate things? It seems like you could indicate this with a single bar that fills and changes color, and you could actually tell what the fuck is going on.


b3b46c  No.16701658

>>16701624

>Why would you ever use double-precision floats in a game?

So you can be lazy and be less likely to run into precision problems. I've ran into a few before, and upping precision is an easy solution to it.

If you want to support large gameworlds (e.g. Minecraft infinite worlds) and high framerates (e.g. 240Hz) then single precision tends to run out pretty quick.


dc7c00  No.16701659

>>16701626

>Is the gradient necessary?

unfortunately, yes

The "score" for a taste is a curve, so we need to show both time and value, where time is left to right, and value is red to green


dc7c00  No.16701713

File: 1230e533f8561ad⋯.png (38.57 KB, 697x231, 697:231, ClipboardImage.png)

Which makes more clear which part is covered by green, neutral (white(left) or brown(right)) and red?


26b7c8  No.16701714

File: 9441be2f30d34b6⋯.png (68.04 KB, 800x800, 1:1, ClipboardImage.png)

>>16701659

I get what you're going for, but are you sure there's not a better way to portray that? Because the fact that you had to explain it probably means it's not really good. Perhaps make it a graph instead?

In general, I guess the second looks somewhat better but it's still a bit too bright and contrasting. Try using less bright colors, something a bit more pastel.

I do have an idea of something that could work: It could be a spinning clock that changes color as it spins to portray the same idea. It, however, immediately explains how the flavors change based on time, something your graph doesn't portray in the slightest from just looking at it. Pic related is a quick shitty mockup I did. I think it would work better. I made them huge but you could easily get away with something small and still be quite understandable, so it shouldn't take up that much more space, either.


13885c  No.16701732

File: 7e95ee08abb4f82⋯.png (19.6 KB, 522x269, 522:269, jj.png)

>>16701570

>>16701713

That seems pretty awkward to read. Is there a reason you can't just go with a line graph?


26b7c8  No.16701735

>>16701732

This was my initial idea too. Could work as well, though having seven graphs may be a bit hard to read as well unless you have a toggle.


a851b5  No.16701736

File: 9441e10b0864a41⋯.jpeg (132.13 KB, 816x459, 16:9, adventure in macaco natio….jpeg)

>>16701713

go for banana brown


dc7c00  No.16701741

File: ec7628ceb8025db⋯.png (563.22 KB, 1451x855, 1451:855, screen detailsd.png)

>>16701714

>>16701597

>>16701626

I will explain what my autistic brother is trying to convey, the system we use to score the tastes of a recipe follows a graph of taste intensity x score, the bar length represents the intensity and the color the score

Example, the salty taste on soup follows:

>0 score at 0 intensity

>1.6 score at 0.6 intensity (max score for the salty value, green color)

>0 score at 0.85 intensity

>-1 score at 1 or higher intensity (max penality on the salty value, red color)

This is the sample UI planning i sent him, i have no idea where the yellow or the white parts came from, he makes up this kind of shit and complains to me it looks like shit later

>>16701732

Using seven line graphs are bothersome to read, the bar idea will make easy for the user to know if his current ingredient combination will hit the green mark


13885c  No.16701743

>>16701735

Hide the other graphs when you hover mouse over a name from the right.


3e8cb6  No.16701750

File: a38f15595bd76f0⋯.png (573 B, 61x42, 61:42, 2019-07-17T14_22_30.png)

>>16701735

Just do a filling graph, like my CPU graph here that sits on my desktop. Small but still very visible and readable.


3e8cb6  No.16701757

>>16701741

Ah, that makes more sense. It would probably be more intuitive and easier to tell seeing it in motion. Still images of the bars aren't very indicative of what it's supposed to be.


13885c  No.16701760

File: 8e6ed21a115bdbf⋯.png (44.15 KB, 549x172, 549:172, Untitled.png)

>>16701741

That makes more sense in terms of design. You could draw a single line graph over the gradient bar, color gradients just aren't as easy to read, can you for example tell where the 50% point in that gradient is?


26b7c8  No.16701763

>>16701741

I got what you're going for, yeah. The UI you have seems much more readable than the initial proposal, so that should be fine enough.

I'm not sure if this is something you're planning on doing or not, but the whole reason I initially suggested my idea was because I thought that you had to balance all seven tastes in one cook. So for example, you could go for max spiciness and mintyness but then the rest would only be average, or if you tried going for max savoriness, spiciness and mintyness would go into the red.

I suppose it's hard to say how cluttered it will look with all seven, but if you're only using green and red, that looks fine enough as is, I think.

>>16701760

This is a good idea as well.


3e8cb6  No.16701837

>>16701760

Red/Green colorblindness is also the most common kind.


dc7c00  No.16701871

>>16701760

This is a good idea too, we could add that

>>16701763

For a maxed score you will need to match every taste to their green part, this would be a 5 star gourmet meal, NPCs won't expect much more than a 6/10 score when you cook for them

>>16701837

This is why i want to use red and green with different saturations, but my autistic brother wants both bright as the sun


2e274a  No.16701913

File: 4575bb405019e3d⋯.jpg (20.54 KB, 660x503, 660:503, Whats the Deal.jpg)

>>16700989

>RPG game

<has massive bugs as enemies

Why do alot of RPGs do this?


dc7c00  No.16701934

File: 3b2559f2df402c2⋯.jpg (77.07 KB, 1440x1080, 4:3, todd the liar.jpg)

>>16701913

Why not?

Bugs are cool


2f453a  No.16701937

File: 8a525d18bf77938⋯.png (Spoiler Image, 2.54 KB, 854x26, 427:13, Untitled3.png)

>>16680787

A week later, cracked open some old code I downloaded to start adding control rebinding and audio/video options. Shoot me dead, another English-is-my-second-language template project.


e3ab40  No.16701955

>>16701913

We as a species subconsiously want to exterminate all insectoids and arachnids.


d174f1  No.16701960

File: d1b4c7f89a45783⋯.png (172.23 KB, 700x704, 175:176, 1441209071414.png)

>>16701913

>his game's enemies aren't actual bugs that corrupt or crash the game if touched


a851b5  No.16701983

File: 3d051b13cc59d5e⋯.mp4 (2.69 MB, 320x240, 4:3, MACHINEGUN 6P41 PECHENEG.mp4)

File: c92b4cf38ddb7ce⋯.png (136.86 KB, 640x480, 4:3, KKnD Autocannon Tank.png)

>>16701913

>>16701955 (checked)

I really enjoy building sand- castles on freakers territory.


2e274a  No.16702003

File: f61acde7cb8a0d1⋯.png (192.4 KB, 375x375, 1:1, 1dbeb651c6329e2bf3d6ed9044….png)

>>16701955

>We as a species subconsiously want to exterminate all insectoids and arachnids.

So why not make the enemies chinese?

>>16701983

>sand


e9148c  No.16702054

>>16701913

Giant versions of tiny animals are standard low level enemies in D&D and the like.


a93cd6  No.16702102

>>16702054

>>16701913

And then, when you get strong enough, you fight palette shifted versions of them


a93cd6  No.16702530

>>16698194

I remember why I was having so much difficulties before. For the sake of replays, I wanted everything to be deterministic, so no floating points, the main game logic for each map would be a state machine etc etc.

Specifically, it was figuring out where each data where that was causing me confusion. For example, if there were two players, each one would need an input and an inventory, as well as score and gems collected. So it makes sense to put this into a Player object. But then, level goals are based on a combined gem quota, so I need a third gem tracking variable

And then, the timer for the level belongs to a StatusController object, but it would make sense to put the Player objects in here. But then when I get to my ReplayController, it's not an immediate part of the gamestate, so it shouldn't be present here, but I still need to track input and record it, so I feel like I should move the Input to this controller instead, and then with the combined score and gem shit above, there's not enough stuff to support a separate Player class, then it all goes in Status controller, then it feels weird to work with and I keep going in circles


b69db5  No.16702866

>>16701913

i needed something non-humanoid to test how easy i can make new characters and the spider was free, so yeah


998efb  No.16703016

>>16701658

This is really supoptimal because double-precision is only really used in scientific computing. Unless you have a workstation GPU like a Tesla or whatever you're not going to have good double-precision performance. If you want to support large gameworlds you need to support multiple coordinate systems.

>high framerates

It's true that float32 timesteps aren't big enough, but why are you supporting high framerates like this? Can't you just run the physics engine at 30Hz or 60hz and then lerp between the points? You can clamp the interval in uint64 time between zero and one so that the lerp happens even at very high framerates, because it's no longer trying to divide too much.


3e8cb6  No.16703031

>>16703016

> is really supoptimal because double-precision is only really used in scientific computing

Doesn't a lot of scientific computing use fixed precision, or precision taking significant digits into account?


b3b46c  No.16703219

>>16703016

>This is really supoptimal because double-precision is only really used in scientific computing

Anon, you are being fucking retarded. Do some actual research before you say stupid shit like this. Every fucking scripting language out there, like Javascript, actually defaults to a double precision floating point. Almost every god damn web page on the internet runs scripts doing double precision floating point arithmetic.

>Unless you have a workstation GPU like a Tesla or whatever you're not going to have good double-precision performance. If you want to support large gameworlds you need to support multiple coordinate systems.

I don't use double-precision for rendering. That issue can be solved entirely by calculating the "WV" part of the WVP matrix using double precision.

There are plenty of games out there that actually support high framerates. Pretty much every game with delta physics tends to do it on a beefy enough computer, and there's even fixed-framerate games like CS:GO that feature 128tick servers for the sake of increased accuracy. I support it because I want my game to be able to transition into future hardware just fine, whether that's due to an increase in framerate, resolution or otherwise.

>Can't you just run the physics engine at 30Hz or 60hz and then lerp between the points?

If player movement is done through the physics engine then running it at 30Hz means you're sampling input at 30Hz. And sampling at 30Hz is disgusting.


998efb  No.16703259

>>16703219

>Anon, you are being fucking retarded.

I'm very obviously talking about the GPU here. You're taking things out of context when you clearly know what the topic is. Argue the actual points instead of cutting reply up and pretending that it means something else.

>I don't use double-precision for rendering.

So you're holding a double precision model for your physics engine on the CPU to construct the matrices for a single precision copy on the GPU? That makes more sense. Still it seems like it would make more sense to just use single precision. Even on a modern computer it's still taking up twice as much space on your SIMD registers. But you seem to have a whole plan around it, i'm sure the bottleneck for your physics objects is probably rendering them anyway, not running the simulation on the CPU, so I guess it doesn't matter.


b3b46c  No.16703310

>>16703259

>You're taking things out of context when you clearly know what the topic is.

Sorry, I was under the impression that if we were talking about game logic and CPU, then following that up with the statement "This is really supoptimal because double-precision is only really used in scientific computing." still falls within that context.

>So you're holding a double precision model for your physics engine on the CPU to construct the matrices for a single precision copy on the GPU?

Yes.

The WV puts the 0,0,0 coordinate on the camera, which allows the higher accuracy range to play into effect for the area you actually see. In addition, rendering logic does not accumulate error like game logic does, so small inaccuracies don't add up.

In addition, double-precision floating point on the GPU is an OpenGL 4.x feature. (Some parts are in 4.0, some in 4.1.) And as you meant to say, double-precision performance on the GPU is quite awful.

>But you seem to have a whole plan around it, i'm sure the bottleneck for your physics objects is probably rendering them anyway, not running the simulation on the CPU, so I guess it doesn't matter.

I'm actually afraid I don't get off easy due to using rollback netcode. But I pray to my god(s) and savior(s) space partitioning & multi-threading to make this affordable.


640dc2  No.16703314

>>16703219

>>16703310

>want to render reflections, anti-aliasing and shadows

>use doubles instead of floats or hell even half precision

<where did my performance go?

If you're dealing with money, use doubles, sure. If you're dealing with graphics, consider smaller datatypes as long it's not too detrimental to the visual quality.


b3b46c  No.16703319

>>16703314

delete your 8chan account


b38071  No.16703389

>>16701271

>currently the engine uses uint64 timesteps instead of floating point

Was there a good reason for starting with floats besides more precision? Also does Sigma 2 use fixed timesteps or variable timesteps?


26b7c8  No.16703426

File: c5ba4d0caff8dd7⋯.png (1.32 MB, 1600x900, 16:9, ClipboardImage.png)

>try to use glCullFace

>no impact on performance whatsoever

>spend long time implementing custom culling system

<makes everything significantly worse at first

>rework it to be less shit

<raises performance in pic related (20.000 cubes, 240.000 tris) from ~29-30 fps flat to 57-82 fps depending on camera angle)

As it stands, I'm certain I can optimize it further, however I simply cannot think of how yet. It's a really great performance boost as is, about exactly what one should expect from such culling so I'll leave it on the backburner as I keep working.

I also don't yet cull things that are off-camera, since camera controls are not finalized.

it also lets me track how many triangles I draw and how many I cull, which appeals to my autism


998efb  No.16703461

>>16703310

I get it, I was being confusing because we jumped form SSE to the graphics card. I didn't know that your setup uses multiple levels of precision so I thought that it was all unified.

>I'm actually afraid I don't get off easy due to using rollback netcode.

Hopefully it isn't too harsh. But i'm sure that if you just write the important procedures in ASM yourself, you can squeeze out the performance you want.

>>16703389

Variable timesteps. Technically it always used uint64 I would just convert it to floating point for literally everything when floating point time should basically only be used when it has to interact with physics or something. So I was doing packet limiting, framerate limiting, using this system, and this is the source of the desync from the server at high framerates, because my timestep kept rounding down to zero and it could only count the timesteps that were abnormally long thanks to microstuttering or whatever. Now that I use uint64 time for this stuff it works fine.

>>16703426

Do you have frustum culling implemented yet? You can also leverage hardware occlusion querying as described in these extensions:

https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_occlusion_query.txt

https://www.khronos.org/registry/OpenGL/extensions/NV/NV_occlusion_query.txt

https://www.khronos.org/registry/OpenGL/extensions/HP/HP_occlusion_test.txt

This might help your performance quite a lot.


b38071  No.16703468

>>16703461

Doesn't that create weird stuff when jumping from big to small numbers? And what about stuff like replays?


26b7c8  No.16703480

>>16703461

>Do you have frustum culling implemented yet?

No, not yet. This is the first culling implementation so far. I'll look into those as well, thanks.


998efb  No.16703682

>>16703468

No, it can manage timestep differences fine, this is mostly because, the server is running on a different thread than the client. If my rendering is slowing down the client thread, that doesn't change what happens on the server, which is basically idling most of the time waiting to hit the right timestep (the "sv_fps" cvar). Replays will just have to store a timestep.

>>16703480

https://www.gamedevs.org/uploads/fast-extraction-viewing-frustum-planes-from-world-view-projection-matrix.pdf

This might help, it's what i'm using to do frustum culling.


b38071  No.16703730

>>16703682

Wait I don't think I'm following, so the server logic is waiting for fixed updates at the right timestep while the rendering uses a variable timestep to render stuff in between right? If the server logic is running at a variable timestep could you give a quick run down on how you did it without creating strange artifacts? Sorry for the trouble.


d02695  No.16703839

>>16699793

That's more or less correct yes, since I'm using a ECS architecture, I have a TransformComponent that holds the entity's position, scale and rotition, from it I can get its global space position and from the AABBComponent I can get its half space of.

To perform the collision tests however you'll probably need to know the velocity of both objects so that you can apply a swept collision detection which is a lot better than a static AABB x AABB collision check.


998efb  No.16703913

>>16703730

It's right now effectively on a fixed timestep, because it never takes that long for a server tick to complete, and because it's running on another thread, it doesn't get blocked by the client thread. There isn't some kind of inherent issue with variable timesteps beyond precision issues when the timesteps get too small to represent.


3e8cb6  No.16703991

>>16703314

>If you're dealing with money, use doubles, sure

Note from somebody who writes programs that handle money for a living: don't do this. If you're dealing with money, you either use the smallest unit necessary as an integer, you use fixed-point, or you use a dedicated money type (which is usually fixed-point). You never use a floating-point type for money, because error accumulates in an unacceptable way for the purpose.


c7a185  No.16704225

Does anyone know how to detect collisions in godot without using the is_on_ground() function? The reason why I'm not using the is_on_ground() is because it belongs to the KinematicBody node and requires _physics_process instead of the Rigidbody node.

I feel so dumb because I'm trying to implement a jumping function without infinite jumping. The way I'm trying to solve it is to keep a jump counter that resets whenever I collide with the ground. The problem is that I don't know how to detect the collisions to begin with


2a08d5  No.16704271

>>16704225

no idea how godot handles it, but you could make the floor another trigger and only allow jumping when they collide.


47b415  No.16704729

How can you trust other people when you post your projects here? With all the thousand of bugmen in china ready to steal anything that resambles a game to sell it as their own?


13885c  No.16704770

File: ce0815d1f24caa0⋯.png (64.17 KB, 391x386, 391:386, hz8e82p9.png)

>>16704729

Have fun remaking my very elaborate and advanced videogame based on a screenshot.


b3b46c  No.16704774

>>16704729

>bugmen

>polishing a tech demo into a viable product

If China was anywhere near as good as you make them out to be, we would see way more Chinese games on the western market. We don't, because they don't have the skillset to produce anything decent. This is incidentally also why, despite all the difficulties, western developers are trying to expand to China. There's very little "real" competition there as its all garbage clones and microtransactions, so managing to sell your game there means ez moni.


d02695  No.16704778

>>16704729

>implying bugmen can do anything else other than Ctrl+c Ctrl+v


26b7c8  No.16704782

File: a7fe1629422868a⋯.png (1.26 MB, 1600x900, 16:9, ClipboardImage.png)

>>16704729

Yes, go ahead and rip off my project, anon.


13885c  No.16704785

>>16704782

Mmmm I'm gonna make millions with this thanks sucker!


d02695  No.16704789

>>16704782

I've meant to ask you this a while ago but I keep forgetting, how are you rendering your text anon?


a851b5  No.16704838

File: 0b87a75881065f9⋯.png (96.36 KB, 727x682, 727:682, bydło eact "programmer".png)

File: 9f1ae0dc5444696⋯.webm (2.1 MB, 480x360, 4:3, NO FREAKERS ON THE BEACH.webm)

>>16704729

Why worry? I develop stuff in order to make myself familiar with the process, not to make the next breakthrough game like Command and Conquer 1 did, when I manage someday in the future to be knowledgeable enough to make a engine that surpasses graf zahl crap that is good enough for me.

>>16702003

The boss wants his sand castle and he will get it, even if a auschwitz like camp has to be made to fulfill his wish.


89e28c  No.16704840

>>16704774

>its all garbage clones and microtransactions, so managing to sell your game there means ez moni.

but western games are exactly that


c7a185  No.16704900

>>16704271

Thanks anon, I got it fixed by adding raycasts. No more infinite jumping.

>>16704729

China doesn't need to steal from these boards at all.

China has a brilliant policy where companies are forced to give them industry standard techniques and secrets if they plan to outsource in their country. In order words, corporations that wish to use their land/property for profit are forced to teach their own citizens. That's why they're able to industrialize to the point of creating carbon copies. Here's a great article about it:

https://money.cnn.com/2018/04/05/news/economy/china-foreign-companies-restrictions/

If other countries did the same, then they would be better off too.


26b7c8  No.16704902

File: 7f7e8254e7a9699⋯.png (19.63 KB, 362x470, 181:235, ClipboardImage.png)

File: 800045ea60a13f8⋯.png (8.86 KB, 1437x27, 479:9, ClipboardImage.png)

File: ba5f834c46f2913⋯.png (27.55 KB, 923x278, 923:278, ClipboardImage.png)

>>16704789

While probably far from the most efficient way, the process is as follows.

First off

I have a texture sheet with all the characters in order, pic related one. They're right there alongside my other menu/HUD graphics. I then have a text string with letters in the exact same order, pic related two.

To get the letter from the texture sheet

The engine goes through the string you provide in the text draw function, letter by letter. It gets a letter, looks for it in that fontlist string from earlier and uses that positioning to find where on the texture sheet it is. The letter textures are spaced out identically, 16 per line. I divide by 16 to get which row it's on, and modulo by 16 to get which column it's on. Since all the letters are spaced out evenly in the texture sheet, it's simple multiplication from there on out. They can also be drawn exactly the same because of that even spacing on the texture sheet.

Spacing

The letters that don't fill a full square are at the beginning. When I get the letter position from the fontlist string, I do a quick check. If it's more than 21, I use default spacing. If not, I figure out what the spacing should be. I add that spacing to the X coordinate after printing the letter and use that as the X for the next letter.

Spaces don't draw anything, they just add to the X coordinate and move on.

Linebreaks restore the X coordinate to the initial one, and add to the Y coordinate instead.

All of this is done for one reason or another and lets me do a lot of fun shit. For one, the spacing check makes the font look a lot more natural since all the letters are spaced apart identically instead of the smaller letters having a wider gap. On top of that, I can provide custom spacing values to the function, T O T Y P E L I K E T H I S if I so wanted. Or to space the lines apart a bit more instead.

I have to use widestrings to accommodate rarer characters, such as Cyrilic in this case. It's futureproofing. I believe Japanese characters would require the same thing.

I have several functions with varying levels of complexity, to save a bit on performance when needed. Check the post you responded to again.

The text in the bottom left just draws it and does nothing else.

The text on the left can only do linebreaks.

The text in the top right can be resized as well.

I also have functions where the text can be colored, pic related 3.

I certainly hope all that made sense. It's a lot simpler than it sounds.


640dc2  No.16704932

>>16704902

Nice writeup, definitely different from using truetype fonts but I have to say how do you deal with different sizes, do you just scale it and call it a day?


13885c  No.16704983

>>16704902

You can also align the text by keeping track of where the row started, and when the row ends move all the characters in it left by half the row width (center align) or full row with (right align).


c7a185  No.16705081

File: 04d39fe017e51d0⋯.png (318.65 KB, 1902x983, 1902:983, ClipboardImage.png)

starting on a pistolll


26b7c8  No.16705126

>>16704932

I try to avoid libraries like a plague. Aside for various GL-related libraries and LodePNG, I have none so far. Interestingly enough, the font I use is one I made and I do have it available as a .ttf file, so I can get bigger resolutions of the letters if needed.

The text is quite big as it is, being 42 pixels tall on average on a 1080p screen. I might need to do some special High-quality case for resolutions above 1080p, which would not be too hard. Just supply an upscaled menu graphic texture sheet to the engine if it's above 1080p. I wouldn't have to do anything else, either, since texture coordinates would be in the exact same spot anyway and the engine handles any resolution and aspect ratio thrown at it. That's something I'll do later on, when I have more menu graphics though, as well as when I have access to a higher resolution monitor, as all of mine are 1080p or below.

As for downscaling, the engine already has a pixel alignment system which I use for all 2D drawing. Screen coordinates don't correspond to full pixels, is the problem. If I just said "Draw at 55, 55", on a 1920x1080 window, it would draw it at pixels 105.6, 59.4. Due to floating point errors like that, scaled down images and text would look differently when drawn in different places. A scaled down letter B would look different at 0, 0, than it would at 55, 55. Same applies to sprites that have been scaled down. That's why I do pixel alignment, to make sure it draws it on an even, rounded down pixel.

>>16704983

I might look into that more when I'm working on textboxes, that's a bit on the backburner. Textboxes will also need to roll the characters out one by one, instead of drawing them all out at once. I'd need to precalculate the spacing like this, but it shouldn't be too hard.

As it stands, the text draw functions I use now are mostly for menu graphics, UI and testing.


d02695  No.16705303

File: f42d65a340eabee⋯.png (1.09 MB, 1165x947, 1165:947, good_fucking_food.png)

>>16704902

Thanks this is going to help me quite a lot since I'm trying to implement something similar on my engine *I'm also trying to avoid using libraries if I can't make them myself**


a93cd6  No.16705555

>>16704902

I think SFML uses ttf fonts, but I'm not sure how they interpret them to become spritefonts. It seems like it makes use of kerning information (which isn't accessible, thanks SFML) and then it generates an appropriate texture.

There's a helpful wrapper called Text which contains a font and it's texture, but I shit you not, every time you change the "displayed string" value on the text, it generates a completely new texture. Exceptionally wasteful.


11fe06  No.16705572

File: b11cf4d0517013d⋯.png (52.31 KB, 209x172, 209:172, blemmyes_BSOD.png)

>>16705555 (checked)


26b7c8  No.16705608

>>16705555

That's always my worry with libraries. When I was just picking up C++, every search online for how to do something would lead to a stackoverflow post saying "JUST USE BOOST LOL", when what I needed was something basic. That's how it usually is, so that's a struggle, avoiding libraries. Same thing with modern OpenGL features when all OpenGL tutorials are for at least GL version 3.

I just like writing my own shit. If it's slow, it's my fault and I have to fix it. Libraries would just make a mess of things.


e30752  No.16706262

>>16705555

>every time you change the "displayed string" value on the text, it generates a completely new texture. Exceptionally wasteful.

It really depends on your use case. Drawing character by character each frame when you're displaying static paragraphs of text isn't ideal. I prefer to have my renderable text have the ability to work either way: drawn per character from a font sheet for often changing text and cached to render target texture for large blocks.


b69ef1  No.16706403

>>16705608

>That's how it usually is, so that's a struggle, avoiding libraries.

because it usually fixes shit for that exact situation, there's a reason the library exists in the first place. bigger issue is when in becomes the goto answer even when the library would be complete overkill, plus it doesn't help if you're still on the way to figuring out basic shit.

there's nothing wrong with (most) libraries, like everything it's just a tool depending on the use case - and that's what SO usually gets wrong.


13885c  No.16706407

File: b30ebb2c563f9fa⋯.gif (296.29 KB, 437x117, 437:117, wrap.gif)

>>16705126

>textboxes

It's not a big change over just drawing the letters normally. This is a potential engine dev rabbit hole though, so be careful before you're developing an entire UI layout system instead of a game. Like me.

Mine's a little different but here's pseudocode for how to do text drawing and wrapping in a text box, along with how to right/center align it:

BoundingBox box = {0,0, 200,200};
String str = "hello world";

int rowStartCharacter = 0;
int previousBreakCharacter = -1;
float xPos = 0;
float yPos = 0;
float lineHeight = 20;
float lineWidth = 0; // this is purely for right/center aligning text
for (i=0; i<str.length; i++) {
// record break character, add all characters that text is allowed to wrap from
if (str[i] == ' ' || str[i] == '\t' || str[i] == '-') {
previousBreakCharacter = i;
lineWidth = xPos;
}

// check progress horizontally
if (xPos + str[i].width > box.width || i == str.length-1) {
// text passed horizontal textbox boundary or string ran to an end

// if space was not found on this row, force the text to wrap on current character. Line width will also be changed to here.
if (previousBreakCharacter < rowStartCharacter) {
previousBreakCharacter = i;
lineWidth = xPos;
}

// get x position offset for aligning text to the right or center
int rowOffset = 0;
if (TEXTALIGN_RIGHT) {
rowOffset = box.width - lineWidth;
}
else if (TEXTALIGN_CENTER) {
rowOffset = (box.width - lineWidth) / 2;
}

// draw characters from start of row up to the break character
xPos = 0;
for (pos=rowStartCharacter; pos<=previousBreakCharacter; pos++) {
drawCharacter(str[pos], xPos + box.x + rowOffset, yPos + box.y);
xPos += str[pos].width;
}

// progress vertically
yPos += lineHeight;
xPos = 0;
i = previousBreakCharacter;
rowStartCharacter = i + 1;

// passed textbox height, stop drawing or something
if (yPos > box.height) {
return;
}
}
else {
xPos += str[i].width;
}
}


26b7c8  No.16706647

>>16706407

Oh, my textboxes don't have to be that complex at all. Admittedly it doesn't seem like it would be too hard to do and implement into what I have as is.

I just need a typical RPG textbox, where the text is drawn in the same place at all times. That shit is pretty neat though, thanks.

>>16706403

That's how it's been, yes. I needed a library that reads PNGs so I got one. But usually, shit like Boost is recommended where a few simple standard library commands will do just fine.


b3527a  No.16706648

File: 9017fb4af2c64c6⋯.png (26.9 KB, 321x182, 321:182, teapotiii.png)

I now have textures! After this I promise not to post ANY more teapots because I'm as sick of it as you are. Next up is probably text so I can put useful information on the screen. After that a real camera system and maybe even a game. For those of you using legacy OpenGL what resources do you use? I'm thinking of getting an old version of the OpenGL big book or whatever it's called because there's so much beating of the "core only" wardrums on the internet and it's hard to tell which features came about when before 2.1 and the best ways to use them. This project is the non-deprecated subset of features in 2.1, but my next will probably have a 1.x and 3.2 core renderer for maximum compatibility.


2e274a  No.16706703

File: 40f4caa7e114536⋯.jpg (27.29 KB, 613x335, 613:335, mauser pistol.jpg)

>>16705081

>50k tris

>subdivision surface

>yeet cannon

Why do people go overboard with the tris? I try to keep mine under 2k for everything.


dc7c00  No.16707099

File: 5db71b5defcd877⋯.png (164.59 KB, 800x600, 4:3, bush.png)

File: 2c4d5134775fcb9⋯.png (111.03 KB, 800x600, 4:3, herb.png)

Making random props while my brother finishes the cooking system


17ac89  No.16707140

>>16707099

Can you smoke dat herb mon?

>>16706703

It's probably his high poly model to bake normalmaps onto his low poly one.


47b415  No.16707265

What's the easiest thing to develop in godot?

I'm watching a tutorial on how to make a space shooter, but the version that the guy is using is older and they changed some functions name and structures. I'm watching gdquest's videos since there's a lot and still updates, but there's not a lot of material outside for the engine. Even the official site has problems with downloads and the guide.


dc7c00  No.16707356

File: 12e3696a059eadb⋯.png (70.01 KB, 587x437, 587:437, lotus.png)


c7a185  No.16707454

File: cd40cbd9b92f7b5⋯.png (1.85 MB, 1920x1080, 16:9, ClipboardImage.png)

>>16706703

That's what retopology is for and that's how AAA studios do it. They make a model with a highpoly count and bake normals onto a low poly one. You get a lot of good detail and control through that method.


2dd2ec  No.16707478

>>16704225

You could have a raycast constantly enabled and scanning down, just make sure to make it ignore its parent node.


c7a185  No.16707500

File: da9dc80b58fb9e3⋯.mp4 (370.21 KB, 1280x750, 128:75, 1skyn9.mp4)

File: f0399fb91cdaf3b⋯.mp4 (822.73 KB, 1920x1000, 48:25, d6ni1s.mp4)

>>16707478

Thank you anon! I solved it earlier through that method, but I commend you for pointing it out. It's crazy how raycasts are powerful, is there a downside to using them?

anyway, I'm going to try getting the camera to follow the player.


d9a133  No.16707929

>>16707454

the gun is horrendous but not this horrendous


c7a185  No.16707986

>>16707929

I'm not happy about it either, at least I figured out a workflow though. I'll continue practicing.

I dig that it's a lot quicker than character modeling though.


b69db5  No.16708816

YouTube embed. Click thumbnail to play.

working quest interface

still not entirely sure about my UI layout but i really don't have better ideas


2e274a  No.16709140

>>16707454

I know about that method but arent you supposed to subdivide it manually then add details using sculpting? Just slapping on subdivision surface doesnt seem right.


b69db5  No.16709210

ayy, unity's gpu lightmapper actually works for once

last time i tried it i kept getting warnings and then shit crashed

easily baking a 256x256 or so scene in only half an hour


f37180  No.16710122

>>16709140

There's luckily multiple approaches to 3d modeling. You can start from high to low or low to high. The reason why I do the former is because I'm used to modeling characters that way (sculpting and retopologizing). Your workflow isn't wrong and mine isn't either, but it wouldn't hurt for me to learn both methods.


e3ab40  No.16710304

File: 72e344202e07a91⋯.mp4 (1.59 MB, 640x360, 16:9, Hows_your_day_been_buddy.mp4)


b3432e  No.16710331

Is Game Maker 1.4 alright or should I move to Unity or something? I just want to make some side scrollers and puzzle games.


640dc2  No.16710382

>>16710331

godot

love

sdl / sfml

the lower you go the more autistic you are


a192ef  No.16710424

>>16710331

For sidescrollers and puzzles games game maker is fine if you're already comfortable.


9f0f5b  No.16711410

File: 55d6156bde9794e⋯.png (113.57 KB, 966x664, 483:332, 10535.png)

What's the best way to handle multilevel isometric maps? I want to achieve something in the veins of Final Fantasy Tactics and Tactics Ogre: Let Us Cling Together. I'm not using any engine, and the game is 2D. Preferably an efficient way. I'm aware how Tactics Ogre did it as in pic related, but I can't for the life of me to think how to streamline map creation, or handle bridges.


a93cd6  No.16711622

>thread lasted over 2 weeks

>usually has a max lifetime of 3 days


b69db5  No.16711796




[Return][Go to top][Catalog][Nerve Center][Cancer][Post a Reply]
Delete Post [ ]
[]
[ / / / / / / / / / / / / / ] [ dir / agatha2 / choroy / fascist / freeb / loomis / miku / nara / strek ]