[ / / / / / / / / / / / / / ] [ dir / 8cup / britfeel / f1 / hkon9 / hkpol / pdfs / throat / vichan ]

/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: 7e7abe78b285e6c⋯.png (342.19 KB, 1500x1000, 3:2, 7e7abe78b285e6c1085c1973f6….png)

228a59 No.14962945

skyrim 2 edition

Resources

>>>/agdg/

>>>/vm/

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

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

Links

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

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

>Previous thread: >>14901381

Announcements

>QUARTERLY DEMO DAY SCHEDULED FOR August 8th

>Please contribute to the wiki if you can

228a59 No.14962979

File: 2c2fb5d155ea9d8⋯.webm (7.8 MB, 800x600, 4:3, LaserChess 2018-06-11 17-….webm)

repostan last progress


e43256 No.14965832

tfw the triangle won, because you have no idea how to do perspective scaled texture sampling because OpenGL/the hardware does it automatically, but you don't know how to tell it how


fd2aa7 No.14966053

File: f026ab04b8bdd12⋯.mp4 (249.82 KB, 480x360, 4:3, startrek_gowron_glory_to_y….mp4)


60107f No.14966422

>>14965832

But do you ?


cd0e49 No.14969551

>>14962979

looking good.


107bf0 No.14969884

File: d6069fd90e1137f⋯.png (154.39 KB, 309x457, 309:457, 28b15qfk.png)

>write code

>having fun

>compile

>HURR DURR X Y Z D A B C AND G ARE NOT DEFINED GO AND COPYPASTE THEM TO THE TOP ALSO FIND AND UPDATE THE HEADER FOR THAT FUNCTION YOU TOUCHED

I want C without needing to declare functions and types before using them, managing headers is absolute waste of my time.


1a9692 No.14970127


7672c5 No.14971435

In Godot, what am I supposed to do with the ID I get from get_instance_id()? In GameMaker, you can just reference the ID via a variable that holds it, but that doesn't seem to work in Godot.


b1833b No.14971511

>>14969884

Use single compilation unit. It will greatly minimize the use of headers.


35278c No.14971953

File: 7c82f5cd9115ff3⋯.jpg (29.65 KB, 600x450, 4:3, 7c82f5cd9115ff3b7ddff68c8c….jpg)

>>14970127

>garbage collected


b47f48 No.14972010

>>14971953

It sure is.


48bc03 No.14972054

File: bfcfadaa953b621⋯.png (2.76 KB, 500x250, 2:1, Oekaki.png)

>>14969884

>>14970127

>he doesn't write his games in AWK


1a9692 No.14972120

>>14971953

It has manual memory management as well.


65d2e7 No.14972187

>>14969884

If you don't know what your types are, you don't know what you're doing.

If the computer doesn't know what headers you want, compilation takes a lot longer than it's supposed too.

It sounds like you're just not used to how it all works, once you are used to typing C out you wont have this problem anymore.


35278c No.14972188

File: f44e55c5d7795a8⋯.png (313.33 KB, 1118x721, 1118:721, was it worth it.PNG)

>>14972120

From what i read disabling D's GC is a very fringe feature that is not recommended by anybody, mostly because almost everything in D allocates, including almost every feature of the standard library, and that doesn't change once you turn GC off.

For example this line in D allocates memory


int[2] array = [0, 1];

where the same wouldn't in C++.

D was used in the gaming industry exactly once, by Remedy in small parts of Quantum Break, and if you read their slides from a presentation at some D programming language conference, they didn't exactly sound enthusiastic about it.


35278c No.14972224

>>14972187

>>14969884

>If you don't know what your types are, you don't know what you're doing.

He's talking about forward declarations and so forth, but really if your code is well structured it shouldn't be a big issue. I can understand some initial frustration with the linker, but once you get used to things like avoiding circular includes, splitting things correctly into .cpp and .h , using #pragma once etc. that problem disappears.


1a9692 No.14972370

>>14972188

>Wasn't used enough, could have done it in C++

They could have done it in brainfuck if they felt like it. D does have static linking, by the way.


e43256 No.14973076

>>14972370

>Static linking mods

So what, you'd just have your game/program look for .dlls in the same/subfolder with a certain header to hook into it and call it? Wouldn't that mean arbitrary code could be run through your program? (though I guess the user should only install trusted mods in that case)


65d2e7 No.14973641

>>14973076

This is the problem that Idtech3's QVM solves. You write the gameplay in C, and it gets turned into QVM bytecode that gets executed in the QVM without having access to the rest of the system.


1a9692 No.14973683

>>14973076

That's dynamic linking. Static linking is including the module as source for compiling the binary.


b96e66 No.14973751

File: d0ed12f11577642⋯.webm (3.25 MB, 1920x1080, 16:9, fatman.webm)

File: 699158162e7d114⋯.webm (3.53 MB, 1920x1080, 16:9, fatman2.webm)

I might these two videos in honor of obese men in Hawaiian shirts


e43256 No.14975172

>>14973683

Can you tell I'm a C# babby


55d9a6 No.14977088

Is it more advantageous to store Entity variables such as scale, velocity and position as normal floats variables or to put them in vectors?


54b950 No.14977105

File: e0501ccaad06c2b⋯.png (434.4 KB, 1040x638, 520:319, ClipboardImage.png)

Made some tubes and got the player model/walking anims working.


59f10d No.14977191

>>14973751

That's not a Hawaiian shirt though, friend.


e68d30 No.14977215

>>14977191

The Hawaiian shirt is in his heart


5ebff1 No.14977224

>>14977088

Vectors are float Anon. If not then they are doubles. But normally yes it's very advantageous because then you can perform bulk calculations without having to do them one component at a time. E.g. scaleVec *= 2.0f as opposed to scaleVecX *= 2.0f, scaleVecY *= 2.0f, scaleVecZ *= 2.0f

>>14977105

Spooky fog.


54b950 No.14977454

File: a4144c21b47df5b⋯.png (187.74 KB, 1280x688, 80:43, ClipboardImage.png)


e43256 No.14977497

>>14977224

I think he means vectors in the C++ sense (eg arrays)

Personally, make value-type objects that make sense and build up from there. Make a Vector type that contains an XYZ float. Then make an Entity type that contains a Vector for position, for velocity, etc


228a59 No.14977691

File: 43709d99b5f7f6c⋯.jpg (51.72 KB, 1062x1062, 1:1, 43709d99b5f7f6c24268753163….jpg)

>can't render texture as camera background without using skybox/additional cameras

fuken unity


5c3707 No.14977715

File: f36bb07f512e96f⋯.jpg (7.88 KB, 147x220, 147:220, happo.jpg)

Thread ended before I could reply, but just wanted to say thanks for the following guys, it was quite useful!

>>>14942876

>The whole body's involved and coordinated, and there's subtle anticipatory motion and follow-through to most movements. A bit of bounce after overshooting the final destination and then coming back. Those are what sell it. It's not perfect, but considering how many artists fail miserably at it, it looks damned good.

>Often you see something like parts of the body remaining oddly static or acting completely independently, or you have that particularly disconcerting situation where actions that should come after one another happen at the same time instead. Like a lazily thrown fist not putting an opposite force on whatever it's connected to during acceleration, or not tugging the body along after the arm joints are at their straightest, but instead all involved pieces simultaneously moving toward their final destinations and reaching there at roughly the same time.

>The general speed, pacing and easing are good, too.

>Being cute and expressive in the reactions helps, too.

>At least that's what I see. It's not that much different from the qualities you'd want in traditional animation. Maybe he can give some better insights himself.

>>>14945893

>It depends on which animation you are talking about. Some are mostly procedural and others are mostly regular static animations. When she reaches out with her arms to tap your hand, that animation is done procedurally with some realtime IK. I animated a little "bump" on her hand as it reaches the end. Also the whole body moves forward with a blend tree. Then it has a layer of "look at" logic with random blinks generated for her eyes, spine, and head which is sometimes turned off depending on the animation. The look at target changes with every animation as well.

>For the static animations I try to animate all parts of the body. There usually isn't a single part of the body that doesn't move for anything. Also I don't sync up bones. Syncing makes stuff look robotic and inorganic.


e68d30 No.14978334

File: bacaebaaeabb4f9⋯.jpg (3.81 KB, 658x523, 658:523, 11106108.jpg)

>still don't understand how to open windows properly

I can open an OpenGL window, but if I close it and open another, the program crashes. If I try to use the same window class for more than 1 window, it fails to create the window. If I open more than 1 normal windows with different window classes, I can't unregister the window classes for any window other than the first.

I-i'll make a game soon guys, I promise


228a59 No.14978360

File: 72783c37a6b6775⋯.png (143.46 KB, 398x384, 199:192, 72783c37a6b67756ce93bcc491….png)

>>14978334

jut use a game engine

hardly anyone who knows what they're doing ever manages to just like make game


535889 No.14978522

>>14972188

They've improved GC-less programming a lot over the past year. D now has a stripped-down subset that you can use with the -betterC compiler flag, which disables the runtime library and features that rely on it, including the GC. See https://dlang.org/blog/2017/08/23/d-as-a-better-c/ for more details. You do sacrifice some nifty features, but it works if you want to program in C but without having to deal with forward declarations and the lack of module system.


65d2e7 No.14979298

>>14978334

Are you recreating your OpenGL context for every new window? What error code do you get when the window fails to create? What error code do you get when you try to unregister the window class?


6c8761 No.14979562

File: 5f958c407b8e704⋯.png (225.35 KB, 500x375, 4:3, 1454958267385.png)

>tfw can't feel motivated to make bideogames since I know the neetbux can stop coming at anytime making all the effort irrelevant


a54db0 No.14979760

File: f7b4127b0bd2f9b⋯.png (113.13 KB, 459x556, 459:556, motavio.png)

>>14979562

Think of it this way: if you don't make your videogame and sell it, you'll never be able to secure your own existence.


754e7d No.14980052

YouTube embed. Click thumbnail to play.

>>14979562

This whole Motivation meme needs to die. That isn't how your mind works.


b6bfe7 No.14980285

>>14979562

Do it just to be doing it. Don't worry about the result.


228a59 No.14980637

File: 2982efddafbff54⋯.webm (7.47 MB, 800x600, 4:3, LaserChess 2018-06-12 19-….webm)

ui is a fucking pain

mainly because of all the different possible resolutions


8729a2 No.14981346

>>14971435

Maybe I'm asking the wrong question here. In Godot, how do I refer to a single instance of an object/node?


b6aae1 No.14981756

>>14979562

So if the neetbux stop flowing your harddrive gets wiped?


701c77 No.14982816

File: 45ab9eb96251a12⋯.png (54.14 KB, 1077x854, 1077:854, illuminati.png)

>when the you designing a new building and the X-Files theme plays on your head


228a59 No.14982846

File: a0a1e059be78f39⋯.jpg (58.23 KB, 1024x573, 1024:573, a0a1e059be78f39884cc256bdb….jpg)

>>14982816

xfiles is a shit tier show


701c77 No.14982858

>>14982846

HOW DARE YOU?


228a59 No.14982888

File: 7829c0c666da705⋯.jpg (6.47 KB, 241x209, 241:209, Kek _a6f14a9c267781fbf9bf6….jpg)

>>14982858

it's a pleb show for plebs such as yourself


cd3434 No.14982995

>>14982888

Name three better shows then, tripslord.


701c77 No.14982996

>>14982888

I bet you think Goosebumps was scary you fucking baby

nice digits


b47f48 No.14983031

>>14982888

Nice trips, but you're fucking wrong. Other than (((David Duchovny))), it was a great show. And Scully is the cutest shorty from the 90's I fapped to.


228a59 No.14983086

File: 81312a48714c464⋯.png (174.4 KB, 367x319, 367:319, 81312a48714c4647d9596634cd….png)

>>14982995

>>14982996

>>14983031

twin peaks was objectively the better 90s show if you include the new stuff

there's also ds9


1536bc No.14983087

>>14983031

>Other than (((David Duchovny)))

He made the show, but he also ruined it cause he couldn't keep his dick in his pants and had to go to rehab after season 7.


38d0a2 No.14983089

File: cf0150b8469a25b⋯.webm (598.67 KB, 750x420, 25:14, 1471418022434-1.webm)

>>14983031

Best girl.


1536bc No.14983170

>>14983089

Season 1 Scully will always remain best Scully.


b47f48 No.14983171

>>14983087

The sex rehab thing was in 2008, seven years after Season 7. But yeah, the kike couldn't keep it in his pants.


1536bc No.14983188

>>14983171

Then why did he leave after 7?


b6bfe7 No.14983485

>a random byte just fucking appears on the socket on the client end

This is going to be a long ass night.


4b3bf8 No.14983640

File: 15909135c0fdc40⋯.jpg (203.55 KB, 496x1122, 248:561, nenecchi cant code.jpg)

>>14969884

I won't lie, it sucks when you're so focused on changing your source files and forget to update your headers. Just wait for infinite segfaults though.


a350ce No.14983815

>>14969884

Either write header only or get good faggot.


b47f48 No.14984159

>>14983188

According to Wiki, it was 'partly because of a contract dispute that occurred after season seven finished filming.' Though it may have something to do with getting poon or something.


50efd3 No.14984220

>>14969884

It's not that hard man.

In fact it gets way easier if you're handling conversion between two data types in C rather then in Python.


50efd3 No.14984239

>>14979562

>disability

Just get a job, man. Don't be a slave to the government's wills and desires. Disability guarantees you being front-line infantry when the next war comes.


228a59 No.14984257

File: 5bb9449f53406a6⋯.jpg (15.02 KB, 263x192, 263:192, изтеглен файл.jpg)

>>14984239

>being front-line infantry

but that's the best option


c2e370 No.14984276

i wanna make the game i had in me dream but am not a coder - just an idea guy.

Had dream where I was in a desert running into legos like I rammed a few walls with my toe then with my knee then could kind run into them with my elbows then I could run into them with my shoulder then they were turning into small towers then castles with monsters in them made out of legos

something like http://slither.io/ but with running into blocks.


b47f48 No.14984299

>>14984257

But you'd be fighting and dying for Israel, not to liberate Constantinople or anything like that.


4cb0fa No.14984304

>>14984276

So learn to program.


228a59 No.14984310

File: c63af71e500afe4⋯.png (89.8 KB, 265x258, 265:258, c63af71e500afe4ad9900b1279….png)

>>14984276

how about actually trying to learn first?

>>14984299

>fighting and dying

literally the only good part


b47f48 No.14984380

>>14984310

You'd be better off fighting with the RWDS, because at least you'd be fighting and dying for a better purpose than Jewish hegemony over the entire world.


30c4c3 No.14984440

where the fuck do i pirate blenderguru models because i'm sure as fuck not paying $400 for a bunch of virtual goddamn rocks


00c48a No.14984471

>>14984440

CGpeers should open registration on the 15th, normally.


701c77 No.14984525

File: 2fe2dca78fcb8a0⋯.png (275.31 KB, 1047x858, 349:286, museum and library.png)

File: 28f73a70201255c⋯.png (50.24 KB, 1094x854, 547:427, elly angle.png)

Planning new building

Museum and Library

The Succubus Elly will be the caretaker


dd6fdb No.14984577

>>14984525

She looks like she's been up for 36 hours.


701c77 No.14984582

>>14984577

He hates sleeping, its a waste of time for her


30c4c3 No.14984596

>>14984471

Thanks anon, completely forgot about this.


00c48a No.14984616

>>14984582

>virgin succubus christmas cake who hates sleeping as much as I do and likes books

Whelp, that's my waifu now.


701c77 No.14984633

>>14984616

I will make sure you have a hard time finding your true waifu, they will all have great qualities


e43256 No.14984973

File: c54140e1eb628a9⋯.jpg (18.4 KB, 355x227, 355:227, 918bGtR7MOL._SX355_.jpg)

>>14983640

At least with C# I don't have to worry about that sort of stuff


02eef5 No.14985029

File: 0dc63aa157db9ea⋯.jpg (67.52 KB, 1024x768, 4:3, question2.jpg)

This is kind of off topic but I have a question that would probably be answerable by programmer/game devs types:

I'm messing around with a PS1 game in an emulator, and am modifying the values stored in memory addresses to cheat for things like infinite money, etc. I've noticed that sometimes there are two addresses that appear to control the same thing in the game, and they have almost identical addresses, except for the first number. For example, address 80098FBE appears to be functionally identical to 30098FBE. I'm wondering why this would be the case, and if there might be some reason to prefer using one address to make changes versus another?


e43256 No.14985044

>>14985029

I've found that when doing the same thing with games eg Super Metroid or Castlevania COTM, many games seem to have a "display value" and "actual value" for things like health, ammo, etc


02eef5 No.14985065

>>14985044

Yeah I was thinking the same thing, but in this case it appears to be truly functional in both scenarios. NPCs will respond differently to you based on certain values, and both addresses will trigger said response.


4b3bf8 No.14985080

File: aea99a7ae698025⋯.jpg (60.42 KB, 604x473, 604:473, ThanksMS.jpg)

File: f7ca132c38fc3cf⋯.jpg (82.23 KB, 1116x308, 279:77, this software may collect ….jpg)

>>14984973

>C#

Not even once


e43256 No.14985102

>>14985080

Thanks for reminding me


50efd3 No.14985114

>>14984380

>RWDS

Every instance of RWDS was controlled OP. Fascism is the tool of the Jew.


a54db0 No.14985120

>>14971435

>>14981346

What are you trying to do exactly? Most interaction between instanced scenes can be handled with signals.


4cb0fa No.14985139

>>14985029

>>14985065

Perhaps there's some circular updating going on, or they're pretty much the same thing at different stages of processing.

Value goes into the first address, some game logic goes by, it needs to get used later and gets copied to a second spot, processing gets done, final result gets copied into the first address again. Doesn't matter which one you change, it'll end up propagating to the other.

Or it was meant to be a display value, and someone found it very convenient to use it as the actual value at some point in the game logic, which ended up tying the two together.


02eef5 No.14985262

>>14985139

Hmm yeah sounds about right. I guess I'll just stick to the commonly documented address and if I notice something isn't working I'll try changing the other one later. Thanks!


d95474 No.14985423

File: ca603d0b579d993⋯.png (30.21 KB, 828x496, 207:124, Capture.PNG)

Whats the simplest way for me to add controller support at this point in C#, lets say for example, an xbox360 controller?


ac8bcc No.14985473

>>14985120

>What are you trying to do exactly?

I'm not sure how to narrow that down, because the question that I'm asking is inherently very broad. I want to be able to refer to individual instances. Say the player collides with an enemy. How do I store which enemy the player collided with? Say I want to spawn a series of platforms mid-game. How do I store an identifier for each of those platforms when they're spawned, so that I can make them do things individually?

In GameMaker, the function which creates an instance of an object also returns a unique ID for that specific object, which can be stored in a variable. For instance, if I wanted to have the ID of an enemy when I spawn it, I could write

>new_enemy = instance_create(x,y,obj_enemy);

And then, if I wanted to move that enemy to the right, I could say

>new_enemy.x += 50;

In Godot, get_instance_id() can be used to get a unique ID of some kind, but if I store that ID in a variable, I don't seem to be able to refer to that variable as the object from which the ID came, and affect that object through it. Is something being lost in translation here?


48bc03 No.14985564


4cb0fa No.14985583

>>14985423

Maybe add a layer of abstraction between the inputs and their usage. Inputs of any variety could get translated into movement messages, which in turn get translated into actual actions.

As in, something higher up polls every possible device every frame, and say both W and a stick being pushed completely forward might get translated into the same move message that has the direction (0, -1). That way the message wouldn't be tied to the source.

If you add another layer, you could facilitate binding arbitrary keys to such messages on the fly, rather than imposing hard-coded defaults.


f8674e No.14986014

>>14985029

You've discovered what emu devs call "mirroring." Most older consoles had many "mirrors" of memory ranges and especially registers that are all functionally identical and map to the same physical memory/registers. This results from not wanting to waste hardware resources to perfectly decode addresses; it didn't really matter, so the gates, and thus area on the chip, were better spent elsewhere.

In some cases there is a purpose to some of these mirrors, for instanced cached and uncached access to the same address space. That would be an intentional hardware decision with gates to support it, though. The PS1's CPU does have cached and uncached regions, but the reason why it has them and why they're most likely useless in the PS1's configuration is unimportant to this discussion.

In your particular case, I think that KSEG0 (so the 80000000 range) is what you are "supposed" to use on PS1. KUSEG was meant to be virtual memory, but that feature was removed from the version of the CPU used in the PS1, so instead it just contains a bunch of mirrors of the physical address space (one of which must include the 30098FBE address you were hitting).

https://problemkaputt.de/psx-spx.htm#memorymap


55d9a6 No.14986126

>tfw you can only make 2D games and everyone hates pixelshit but you can't draw for shit and don't have a scanner


c87bba No.14986181

>>14986126

Just do someplace holder shit and commission a artist after you're satisfied with the direction of the gameplay is going.


4b3bf8 No.14986197

>>14986126

>everyone hates pixelshit

I hate low-effort pixel shit at resolutions that never existed. But I actually enjoy retro-style looking games.


b729bd No.14986241

>>14985080

>on by default

That's not worse than Windows 10 in general. At least with .NET you can disable it.


02eef5 No.14986254

>>14986014

Excellent post, thank you anon. I have indeed noticed that the 8 range does seem to behave in the expected manner more often than the 3 range. For example, if I want to set a stat to 999, then using the 8 address lets me do so easily (enter 03E7 as the value), but if I try it in the 3 address it caps out at 255 (so, max two digits in hexadecimal - 00FF). I'm guessing that when you gain stat points in the game, it uses the 3 address to set the initial gained value, then adds it to the current value of the 8 address, giving you the new total.

It's also doing something like this for keeping track of the date, but with more addresses ticking over and adding up to ridiculously huge numbers. 30099229 00FF will take you to the year 2360 (a value of 1 is week 255), but 80099229 FFFF will cap out at year 9999 because the game can't actually show you as being 348,000+ years into the future.

>>14986126

Make 3D models then render them into spites. You get to avoid pixelshit and you still get the hit the nostalgia button with graphics that look like Diablo or Age of Empires.


02eef5 No.14986255

>>14986254

render them into sprites*


0d7454 No.14986556

File: 65c6b6516538d7c⋯.jpg (514.91 KB, 1920x1082, 960:541, help.jpg)

Some body please tell me how to correctly anatomy her face.

I just cant seem to get her to look right. Need another eye


cd0e49 No.14986625

>>14986014

awesome post


ce603e No.14986659

>>14986254

>>14986126

while i agree that rendering 3d models as sprites can look good as well, if you can't draw you likely can't 3d model either, as 3d modelling is arguably more difficult than regular drawing

>>14986556

your reference images seem to be inconsistent with one another, as in the left image, the bottom-most set of eyes are below the "normal set" (the eyes that correspond to the location of normal human eyes), whereas in the right image the bottom-most set looks like the "normal set".

That being said, it looks like the forehead is too large, the nose is too wide. The lips look and niggerish and the chin needs to extend farther and face needs to be thinner overall.


0d7454 No.14986670


eb9c5f No.14986721

>>14986556

I don't know much about 3D modeling but right off the bat I can tell you her nose and lower jaw are too broad. Make the chin more V like to accentuate her insect complexion.

The eyes feel like they are a tad bit too wide as well, try to make them a little smaller. Also try adding spheres in the sockets of the eyes. Real spiders have bulging eyes.

From research I have mostly seen arachnid women with a set of normal eyes and 3 smaller less defined eyes. I don't know how loyal you want to remain to the source material, but if I were you I would take some creative freedoms regarding this model.


e8f6f5 No.14986726

>>14986556

I'm not much of a modeler, so it's possible you're using techniques I don't know. Consider these opinions of someone who's just looking, and not the opinions of a modeler.

Are those just the eye sockets, or the actual eyes? I'm assuming they're sockets, since it looks like they're concave. The sockets are too rectangular, they should be a lot more rounded. Look at the eyes in the picture: from the tear duct the sockets on your model are basically at 90 degree angles, while on the picture the socket is at about 45, if not even less. You come closest with that second set from the top, I think. They're also too wide, especially the 2nd and 3rd pairs; they look about 25% wider than the source image. So those would be my two main suggestions about the eyes: they need to be shortened in the horizontal, and the sockets need to be a lot rounder. Lastly, and it's hard to be sure because of the foreshortening in that first picture, but from the profile the impression I get is that the second pair of eyes from the bottom is meant to be the biggest, while on your model the two middle pairs look equal in size. Looks like the first pair of eyes at the bottom is meant to be the same size and placement as a normal person's eyes? Again, hard to tell, that first picture has some crazy foreshortening and weird angles going on.

As far as the general face proportions go, the model's face looks…fat. That's the only way I can think to say it, it's like it's a fat person's face on a thin person's body. The profile image clearly has a very thin, bony, angular face. You did a good job on the torso, that's very clearly the kind of gaunt look the character seems to have, but the face…again, it's just fat. Trim the cheeks in (notice how the profile image cheekbones are very prominent, there's no fat on that face), pull the lips in, thin the lips out and widen them.


02eef5 No.14986728

>>14986556

Face is really chubby, need to square up the jaw, get it to be more angular, get the cheekbones well defined.


cceb1a No.14987600

>>14986556

Her nose and mouth makes her look like a dindu.


228a59 No.14987971

YouTube embed. Click thumbnail to play.

>some horesfucker trying to convince me that literally tens of thousands of A* pathfinding checks are better than a couple of flow fields

i haven't lost my mind, have i?


e8f6f5 No.14988024

>>14987971

If you're actually needing to call pathfinding for each of 10k units, then no, don't even spend half a second considering A*. That's just stupid. Flow fields would work just fine.

But do you actually need to call pathfinding algorithms for that many units? You can't group them up into clumps of a couple of hundred and call pathfinding for each of those groups? No matter what kind of pathfinding you use I can't imagine you'll get out of 10k calls without a significant performance hit.


d16144 No.14988036

>>14987971

>tens of thousands of A* pathfinding checks are better than a couple of flow fields

The video says close to the opposite, anon. A* pathfinding in the video's new version is distributed in somewhat equal distances apart, and the units close to that solution assume that's the right path until the A* algorithm gets to them and is refined. Essentially, the new game's A* algorithm maximizes correct unit movement direction while only making some unit pathfinding solutions per tick. Essentyally, each pathfinding solution applies to an area until other solution's influence begin. It's like a flow field of A* solutions that gets more granularly accurate as new solutions are added.


02eef5 No.14988063

>>14987971

Hot damn I hope these guys make a Total War style game.


228a59 No.14988072

>>14988024

>You can't group them up into clumps of a couple of hundred and call pathfinding for each of those groups

that's what i was arguing for, but with flow fiels since it would ultimately look better

>>14988036

sauce on this? the video description says nothing


d16144 No.14988137

>>14988072

Sauce is your eyes.

First version: units run towards the wall. The A* algorithm can only run a certain amount of solutions per unit of time, so some units are updated and suddenly start moving upwards to run around the wall.

Second version: the algorithm solutions are distributed all over the units, and they follow the solution that's closest. In this better version no one runs directly at the wall. Further solutions only refine the current path for each previously unsolved unit.


c76f08 No.14988152

How can I do scene persistence in Godot? I need a way to keep chests open and make sure cutscenes don't trigger twice after swapping scenes.


228a59 No.14988175

>>14988152

at this point you need some way of saving that info

in my case i have a savefile that i load/save once and then just use the info for the rest of the game regardless of which scene i'm in

example:

start game

load savefile

you're in a scene with some cutscene

depending on the savefile info, that cutscene does or doesn't play

move to another scene

again check the savefile info for whether that cutscene has already played

basically store the info in memory and just access it when needed


8b1bd1 No.14988207

File: e4c3129012ffb92⋯.png (2.33 MB, 1920x1080, 16:9, unknown.png)

After some trial and error I got a free skeleton model I imported into Maya and then into F.E.A.R using the player skeleton to load properly.

Doesn't load with animations though, haven't figured that out yet. Still this is a pretty big milestone, I didn't expect i'd get this far. If I can figure out animations then it should be very possible for me to make new enemies or replace the player model. (Like replace the Replica soldiers with Combine from Half-Life 2 or the HECU marines from HL1).


c76f08 No.14988219

>>14988175

Wouldn't I need two save files for that? I wouldn't want the player to open a chest, reload their earlier save, then find the chest still open. Could I essentially just have a temporary savefile, then when the player actually wants to save the game, just copy all the data from the temporary save to the real savefile?


228a59 No.14988229

>>14988219

>Could I essentially just have a temporary savefile, then when the player actually wants to save the game, just copy all the data from the temporary save to the real savefile?

that's what i meant

when you start a new game make a temporary savefile

when you load an existing game load a savefile from your files


a54db0 No.14988238

>>14988219

No, when you first load the scene, your chest's script's _ready() method should read the save file and if it doesn't find its save instance, it should reset to its default state.


c76f08 No.14988476

>>14988238

But what if the player doesn't save after opening a chest, leaves the room it's in, then comes back? The chest would just be closed again. Or if you're suggesting I autosave it when the chest is opened or the room changes, wouldn't I still need separate files to not fuck up the player's game save? Am I misunderstanding something here?


7d71d1 No.14988540

File: 60491c6652bf3c5⋯.jpg (30.67 KB, 500x714, 250:357, 1414736571631.jpg)

File: a90f891f89e0287⋯.jpg (215.29 KB, 1280x1777, 1280:1777, 1452605675333.jpg)

File: 68cb48849f4f052⋯.jpg (88.06 KB, 500x400, 5:4, 1412560577128-4.jpg)

File: 956953cf2dc8fa2⋯.jpg (95.48 KB, 736x947, 736:947, side2.jpg)

File: 59c71d2cdf48f8e⋯.jpg (152.16 KB, 700x700, 1:1, 1439705410689-2.jpg)

>>14986556

Learn to use reference images. There are literally a ton of them online for free if you just google them.

Study faces, practice. It'll be worth it if you consider making character art at all. Same for bodies too.


228a59 No.14988545

>>14988476

if you're following my idea, before you exit a scene you save it's info to the temporary savefile

when you want to exit the game, or when you want to save, you copy the temporary savefile to a real file

this is how my shit is set up right now

start the game with an empty savefile, the only thing i set in it by default is which scene has been visited

if you load a scene that hasn't been visited, it loads as it was when it was saved in the editor (unit)

if you load a scene that has been visited, it destroys whatever characters/items are in it and loads everything related to that level from the savefile

when you're loading a scene that hasn't been visited, you save it's info to the temporary savefile so that the next time you visit it you don't end up destroying the default stuff in it

you also save a scenes info when you're about to unload it, so that when you come back it will be in the same state as when you left

at the moment my savefile is structured like this:

->levels:

-→characters

—-→stats

—-→items in inventory+equipped

—-→name (so that i know what to instantiate when the scene loads, basically treating it as an id)

—-→world position+rotation

-→items (the ones that aren't equipped to characters)

—-→world position+rotaiton

—-→name

—-→are its physics enabled

-→collectable resources - just a float for each resource in the scene to show how much you can currently obtain of it (they recharge)

-→cutscenes that trigger from entering a collider - bools to know whether that cutscene has played or not

->player data, similar to the character saves in a level


228a59 No.14988552

File: e25bc73102d87a9⋯.png (123.26 KB, 285x311, 285:311, e25bc73102d87a9437c57c1cb9….png)

>>14988545

<it loads as it was when it was saved in the editor (unity*)


31c2c6 No.14988616

This thread gives me the motivation I need to get my editor JUST right


0e2613 No.14988720

>Learning Modern 3D Graphics Programming

>Jason L. McKesson

I'm going to read this book from the AGDG resources. Seems to be very good for the theory behind openGL and 3d graphics BUT I'm struggling to really get started with coding.

Do I just go with the unofficial openGL SDK OR do I mix and match (e.g. GLEW with GLFW) OR do I just use what is being used as part of a tutorial?

Do I just seek out how documentation of the library for each thing I try to do as I do it OR do I follow a tutorial that runs through all this?

Do I translate a C++ tutorial to C code (because I don't want to use C++) OR do I seek out an older, possibly out of date tutorial using C?


31c2c6 No.14988788

>>14988720

Learning in C++ will be more or less the same as learning it in C, opengl operates as a giant hideous state machine, and methods are just flipping states and writing raw buffers. Once you have a window (using glfw, sdl, sfml, raw win sys calls, raw x11 sys calls, whatever) you're in the horrible realm of glGenFramebuffer, glBindFramebuffer, and glEndMyLife.


5ebff1 No.14988858

File: be967c43d9ca139⋯.webm (656.01 KB, 500x500, 1:1, face_remake.webm)

Learning about facial muscle groups to improve her facial animations. Realized I was missing the very important platysmus. I was using combinations of smile and frown before to pull it off but this should have its own slider. Makes a huge difference.


b96e66 No.14988920

>>14986126

If you think not having a scanner is actually inhibiting you in any serious way you're a fucking delusional retard who should also kill himself


7d71d1 No.14988926

>>14988858

Keep doing the good work. You really inspire me


aeb8fe No.14988969

File: 319d4d2da37fd7b⋯.jpg (79.99 KB, 522x593, 522:593, 319d4d2da37fd7b9b660f02879….jpg)


fcc1ee No.14988972

>>14988858

are you using an addon for the muscle system or is it just keyshapes?


5ebff1 No.14989040

File: e57f08496d23b05⋯.jpg (263.17 KB, 856x1580, 214:395, 1462506108270.jpg)

>>14988972

It's just shape keys but it should act like it's own muscle system. This is the 5th mouth rig I've made and I know muscles should be grouped up for each shape key so then they can be used in combination to create more expression possibilities. Before I was just grouping them up instead by expression type which works fine for some but the downside is that you lose those combination possibilities. I should finish it tomorrow.


228a59 No.14989165

File: 594c7fe8591ea92⋯.webm (3.17 MB, 800x600, 4:3, LaserChess 2018-06-13 12-….webm)

i think this is working correctly

sniper behaviour checks it's possible tiles to move to

if he can shoot from any of them, he tries to go to the tile thats both furthest from the pawn itself, and furthest from the tile enemy

if there are no possible tiles to shoot from he just goes to the tile furthest from the closest enemy

it sort of looks like it works, but i'm 90% sure it's wrong for reasons that i can't comprehend, anyone got ideas?

public class Sniper : AIBehaviour {
public override void Move(PieceController pawn,List<PieceController> enemies)
{
List<BoardTile> possibleTiles = pawn.possibleMoves();
if(possibleTiles.Count>0)
{
if(enemies.Count>0){
PieceController closestEnemy = enemies[0];
BoardTile closestTileToEnemy = possibleTiles[0];
Dictionary<BoardTile,BoardTile> attackTiles = new Dictionary<BoardTile,BoardTile>();
//check tiles and find furthest tile from closest enemy
//if we find tiles from which we can attack, find the furthest one
foreach(BoardTile tile in possibleTiles)
{
//only bother checking this if we don't have attack tiles yet
if(attackTiles.Count==0){
//find closest enemy
List<PieceController> enemiesToTile = enemies.OrderBy(x=>Vector3.Distance(x.transform.position,tile.transform.position)).ToList();
if(Vector3.Distance(closestEnemy.transform.position,pawn.transform.position)>Vector3.Distance(enemiesToTile[0].transform.position,pawn.transform.position))
{
closestEnemy = enemiesToTile[0];
}
//find furthest tile to enemy
if(Vector3.Distance(closestEnemy.transform.position,tile.transform.position)>Vector3.Distance(closestEnemy.transform.position,closestTileToEnemy.transform.position)){
closestTileToEnemy = tile;
}
}
List<BoardTile> _atk = pawn.possibleAttacks(tile);
//check if you can attack from that tile
if(_atk.Count>0)
{
attackTiles[tile] = _atk[0];
}
}
if(attackTiles.Count>0)
{
var randomEntry = attackTiles.First();
//sort by distance to pawn
foreach(var entry in attackTiles.OrderByDescending(x=>Vector3.Distance(x.Key.transform.position,pawn.curTile.transform.position)))
{
//find furthest attackable tile from possible attack targets
if(Vector3.Distance(entry.Key.transform.position,entry.Value.transform.position)>Vector3.Distance(randomEntry.Key.transform.position,randomEntry.Value.transform.position)){
randomEntry = entry;
}
}
closestTileToEnemy = randomEntry.Key;
}
pawn.Move(closestTileToEnemy);
}else{
pawn.Move(possibleTiles[Random.Range(0,possibleTiles.Count)]); // move to random available tile
}
}else{
pawn.moved = true;
}
}
}

realistically all i want to look for is the absolute furthest tile he can shoot from


02eef5 No.14989334

>>14988207

Holy shit you are replacing models in FEAR? I've always wanted to remake the game's assets and drop them in to give a visual upgrade but I couldn't find any tools for doing that. Tell me more anon.


7679f4 No.14989533

What kind of fucking pajeet designed Windows' clipboard API?


a3726a No.14989576

Where can I find a clear implementation of flow field? as far as I understand it's a partial Dijkstra map


ad6cdb No.14989593

>>14989165

Because it doesn't check the conditions on the tile its going to?


228a59 No.14989631

File: d1ddab06657cb88⋯.webm (1.56 MB, 800x600, 4:3, LaserChess 2018-06-13 15-….webm)

File: 4a32be5ebda75b0⋯.webm (2.83 MB, 800x600, 4:3, LaserChess 2018-06-13 15-….webm)

>>14989165

>>14989593

nah, i'm an idiot, i was just supposed to compare the average distance from a tile to the enemies rather than doing the retarded sorting i was doing before

				if(attackTiles.Count>0)
{
//figure out which tile is on average furthest from the enemies
float maxDist=0;
foreach(BoardTile tile in attackTiles){
float avgDist = 0;
Vector2 pos = tile.pos();
foreach(PieceController _pcont in enemies)
{
avgDist += Vector2.Distance(pos,_pcont.curTile.pos());
}
avgDist/=enemies.Count;
if(avgDist>maxDist)
{
maxDist = avgDist;
closestTileToEnemy = tile;
}
}
}

now it works as intended

this shit is so much easier to understand when you draw it on paper

>>14989576

this? http://leifnode.com/2013/12/flow-field-pathfinding/

seems like it has everything clear enough


9ea13f No.14989653

>>14989165

>>14989631

You should maybe check for the valid firing position with the highest minimum distance to an enemy. That way it won't do retarded things like in your first linked video at 15s where the ship from bottom-left moves diagonal-adjacent to 1 enemy and 3 away from another and then gets fucked from both sides because he's only looking at the distance to target at 5 tiles.


228a59 No.14989666

>>14989653

my current solution >>14989631 sort ofaccounts for that, although firing is still the higher priority, so when blocked he'll stand still to fire rather than move to safety


228a59 No.14989671

File: 401921f9c9bee3c⋯.jpg (83.82 KB, 550x350, 11:7, 401921f9c9bee3c47899a864ab….jpg)

>>14989666

beautiful


a3726a No.14989863

File: 401a249e576be70⋯.jpg (14.63 KB, 482x481, 482:481, 0613133850.jpg)

>>14989631

>this? http://leifnode.com/2013/12/flow-field-pathfinding/

>What you end up doing is connecting the 10×10 fields with portals that span the gap between 1 to all of the nodes on an edge of the field. You then use A* to find a path from the current field to the target field and only calculate fields for each field that you need to pass through. Results from the A* and flow field calculation can be reused between multiple units. With this method maps can be far larger without performance issues.

I'm struggling with this bit, how do you determine the fields you need to pass through? it seems like you run A* on a lower resolution grid that represents the flow fields (here a cell would be 10x10 instead of 1x1), how to determine in a cell connects with its neighbors when it can be a maze with multiple connections?

Like pic related, a cell can have multiple entry points or entry points that just loop or are a dead end.


0e2613 No.14989918

>>14989863

This is not an answer to your question but I also have a question related to path-finding:

Does anyone use graph and graph traversal algorithms to do pathfinding in major games?

For example, say you have these paths and you make every crossroad a vertex and you create edges between the vertices with a weight of each edge being the distance between vertices on the grid. You would then use a depth-first traversal algorithm to find the exits.

I'm not familiar with game dev so I'm unsure what the pros/cons are or what standard practice is.


228a59 No.14989968

>>14989918

right now navmesh seems to work better for static terrain

the main benefit of a graph is that you can better organize where you can and can't go, and how you get there

an example issue i had with navmesh was that if i wanted to have a locked door, that would ONLY be locked for the agents that don't have a key, i'd have to make an area specifically for the agents who can enter this door. do that for every door in the game and very quickly things become a clusterfuck

while if we were doing something like A*, we'd just go

>start pathfinding

>reach door nodes

>do i have a key? if so, then the door is passable

>if not, it's not passable, continue the pathfinding as usual


588c56 No.14990007

What's the least awful Javascript game library? I've been using Phaser CE and it looks messy as fuck.


8b1bd1 No.14990091

>>14989334

Yes

It took a lot of time finding the tools. The program you use to import models is Maya 6.0. I eventually had to resort to using an ancient Russian torrent tracker.

It also took a while to figure out how to install the plugins. After that i spent some time trying to load models. Ive been working with an anon on a blender plugin but its not done yet. We're having issues with blender scripting.

I thought about setting up a disagreement server for F.E.A.R modding but i doubted thered be interest. Right now ive been documenting my process in a speedrunning disagreement for the game. If the blender plugin gets finished i plan to write a few tutorials so other people can mod the game.


8b1bd1 No.14990105

>>14990091

*disagreement. Not disagreement. My phones autocorrect is acting up.


4cb0fa No.14990210

File: 585e11ba7fb9aa8⋯.jpg (119.59 KB, 500x333, 500:333, hhhehehe.jpg)


12af65 No.14990252

>>14990105

Keep up the work but also lurk more.


107bf0 No.14990287

File: 831c2877ee233f3⋯.jpg (27.47 KB, 500x334, 250:167, 831c2877ee233f345f1af89f85….jpg)

What's with the sudden increase in unironic disgord users in /v/ lately?


228a59 No.14990310

>>14990287

it has it's uses

at least it works better than steam chat


b3901d No.14990321


18f578 No.14990332

>>14990287

Normalfags with friends should fuck off back to facebook, frankly.


a54db0 No.14990412

>>14990287

People are lazy fucks. Riot works just as well and is free.


26c545 No.14990605

>>14990287

>What's with the sudden increase in unironic disgord users in /v/ lately?

It's convenient to document work in and coordinate with other people. I use it on mod projects a lot.

It's also extremely convenient to distribute resources like programs. Since a lot of the games I mod require distributing DL links that would get taken down if I posted them on something like moddb.


a54db0 No.14990626

File: 7922a6c397e5848⋯.png (50.26 KB, 1217x337, 1217:337, ClipboardImage.png)

This fucking faggot I swear to God


228a59 No.14990630

File: 25ace5728f83f48⋯.png (170.18 KB, 400x400, 1:1, 25ace5728f83f48834666613d0….png)


4cb0fa No.14990643

File: bc4b190cf2222e6⋯.gif (298.57 KB, 1076x737, 1076:737, meanwhile, on russki image….gif)

>>14990626

I can't tell if that's funny or depressing.


7ad37a No.14990657

File: e3aa75218cdc43e⋯.jpg (55.35 KB, 282x543, 94:181, scissorsisters.jpg)

>>14990626

Happened with the monogame jam as well, except he didn't have the dignity to ask before he made it.


6c8761 No.14990659

>>14980052

You know, when I saw you embedding MDE I thought you were memeing around but that's actually pretty solid. I think that book War of Art talks exactly about this.

>>14979760

>>14980285

Thanks for the push.

>>14981756

Even if it gets I have a pretty solid cloud backup, but in practice I don't know when I'll have access to reliable PC when I hypothetically turn to a beggar or something.

>>14984239

It's not exactly neetbux, I just said so to simplify communication.

Anyway, next post will be progress, no excuses allowed.


b47f48 No.14990723

>>14990310

>>14990605

Considering your absolute stupidity, consider suicide


228a59 No.14990731

File: ffe4da2298a9c43⋯.jpg (23.35 KB, 635x475, 127:95, ffe4da2298a9c43a88572edbef….jpg)

>>14990723

all day erryday


48bc03 No.14991205

>>14990287

The only reasons we're still using it is because the file sharing is convenient and there's worries over what happens if a Matrix/Riot server goes down. We'll probably move to Tox soon-ish since its group chats are supposedly much better these days.


4cb0fa No.14992139

File: 5497a805eb5e295⋯.webm (1.68 MB, 800x600, 4:3, gamedev2.webm)

Implemented something to move entities physical locations around while overriding the usual physics simulation, as is the case for those accelerating LJN logos. Might be useful for pure visuals or entities that need to specialized movement, like things moving in sinusoidal trajectories. Never mind the strange collision oddities, I just slapped together something to play around with entity-to-entity collision; x is being resolved to its fullest right now, as you might see when projectiles touch the top of a certain moving entity.

Also cutting edge AI that can use events to change state and something not at all difficult to add new behaviors to.

Dicked around with raycasting as well, which is the random purple line you might see shooting out every now and then.

Does that count as progress?


02eef5 No.14992187

>>14990091

Oh man if you can get a plug-in working with Blender or 3DS Max then I would be all over re-modelling the game's guns. Hope to hear more about it in the future. Perhaps you can put stuff on the ModDB page for FEAR when it's ready and I can grab it there some time.


0abe74 No.14992234

File: 9032e96df3b6461⋯.jpg (1.43 MB, 1446x2046, 241:341, 9032e96df3b6461b1d6993f3c6….jpg)

What are the best 3d engines and what are the best tools for making 3d models and pre-rendered graphics to turn into sprites or backgrounds?


26c545 No.14992268

YouTube embed. Click thumbnail to play.

>>14992187

>Oh man if you can get a plug-in working with Blender or 3DS Max then I would be all over re-modelling the game's guns

Blender Plugin is in development right now we're just having issues with writing the actual script itself. The file format is actually relatively simple. (Since most of it is in plain text). Replacing the guns is a plan though it's something I've been working on gradually. (Since there's actually a tutorial on how to do it in the game's sdk. One of the few actual tutorials Monolith bothered to make for the game.) I've been more focused on importing character models since I've only discovered a single person who actually accomplished this task. (And he did it 10 years ago where he made a Quake 1 mod for the game. )

>Hope to hear more about it in the future

Once it's done I'll post about it here. I've posted the big successes in a few threads here in the past.

>Perhaps you can put stuff on the ModDB page for FEAR when it's ready and I can grab it there some time.

We're planning to put it up on Github although moddb is also an option. I plan on writing a few tutorials for importing models and creating maps for the game and posting them there.


48bc03 No.14992298

>>14992234

There is no best 3D engine, it all depends on the game you want to make and the hardware you're targeting. My ideal is probably something close to Bitsquid/Autodesk Stringray with a Vulkan renderer, but for the average indiefag something like Godot is probably good enough.

Please, tell us what you're thinking of making. It will make recommending stuff much easier.


0abe74 No.14992335

>>14992298

As I mentioned, pre-rendered graphics and renders to transform into sprites, kind of how they used to do things for CnC and AoE. But I'd also like to use the engine for a Point and Click adventure game project.


5b108a No.14992380

Okay I know one of you faggots are, who's making the moth game and how are things going?


e7f9c3 No.14992439

File: b35d970aa63ec8d⋯.jpg (467.84 KB, 2000x3000, 2:3, Fang-Hua Portrait1_2b.jpg)

File: f5844b0b4235b54⋯.jpg (868.3 KB, 2892x4078, 1446:2039, Fang-Dance1_3.jpg)

>>14992380

What moth game might you be talking about?


00c48a No.14992459

File: a2e1178cc4994e8⋯.jpg (117.34 KB, 564x428, 141:107, hey buddy.jpg)

>>14992380

Hey buddy, I think you got the wrong /agdg/. Halfchan's two blocks down.


5b108a No.14992660

File: 4b5d083e7d4f691⋯.gif (1.62 MB, 540x373, 540:373, Moth thing.gif)

>>14992439

This one. Found it in my monthly hunt for moth-girl pics, recognized the symbol, and came here to interrogatecongratulate the dev(s)

>>14992459

I was unaware cuckchan had one of these so I just assumed it was one of you guys.


107bf0 No.14992677

File: 4938665f4bae67e⋯.webm (1.12 MB, 563x427, 563:427, 1471794902478.webm)

>>14992660

I have one of these webms and it's from 2016 m8. It's ded.


5b108a No.14992711

>>14992677

Nah the blog is still updating, with the latest being early June of this year. I hope not. I might not be a dev myself but this sort of cute/goofy game is the kind of thing I'd make.


7ec6dc No.14992809

YouTube embed. Click thumbnail to play.

>your autism will never match that of a furry's

This is why I don't try, lads


812e23 No.14992825

File: 3f3f4217628c9fd⋯.jpg (30.48 KB, 542x616, 271:308, 617afeb9200c7caf6feea55125….jpg)

>>14992660

>>14992677

>qt3.14 moth

Jesus I hope there's moth porn


48bc03 No.14992868

>>14992335

In that case, any 2D engine will do. Try fucking around with Godot, it's pretty newfag-friendly.


a54db0 No.14993103

>>14992139

>shooting moonman with rainbows

Love won!


7a975a No.14993104

File: 8c1d4c2f0af62f8⋯.jpg (38.63 KB, 374x374, 1:1, questionmarks.jpg)

hey there anons.

you got any idea if there's a "right" way to access UObjects and their variables across threads in UE4? I'm optimizing my shit right now and I'm having quite a bit of trouble with things returning nullptr and invalid references.

I'm kinda bracing myself to just gut my smartass setup that worked great with single-thread approach and simply pass all the data to the asynctasks instead, but I worry about doing what essentially amounts to duplicating the same data, even when working across threads.


701c77 No.14993949

>>14992677

>>14992660

aww shit thats kawaii as fuck nigga


e43256 No.14994323

>UpdatePre(time), Update(time), UpdatePost(time)

What value should I pass into "time"? Would it make more sense to use the current game timestamp, or use the timestamp acquired at the start of the current frame?


2838c9 No.14994442

File: 4281912b8ba4a50⋯.jpg (60.5 KB, 1000x1000, 1:1, IMG_20180606_170231.jpg)

So i was reading up the article about what separates video games from books and films in the wikis resource dump and it got me wondering if there is a thing as too much agency that will result in killing a players agency and engagement simply due to how retarded the modern player is. To give an example :

One of the ideas floating around my head when boredoom sets in involves a small scene of an armed man kicking open a door you are running towards. His weapon is drawn but not yet actually aimed at you. This is where the first tutorial-esque notification appears that tells the player they are capable of slamming into someone standing infront of them and knocking them asidr to unblock their path by pressing X key. Once you get past him and proceed through the first scene, the player is expected to use this mechanic a couple of times during a chase scene to progress, imprinting into their mind the notion that they can slam aside enemies to further progress.

Eventually. however, they reach the climax of the scene. Stuck in an alleyway where one dead end is a wall they cannot scale and on the other end several enemies with their weapons drawed and pointed towards him. Normally at this point you'd insert a cutscene to act as the end of the act and to progress the story. But lets say i dont introduce a cutscene. The player still has full control and the musif is still going at the same tempo it was before. Armed NPCs tell them to drop to the ground with their hands up but without a prompt explicitly telling them to do that for a few seconds, an average player would run towards them and slam into them because he ezpects the trick to work. Yet if he does, he simply gets knocked down with weapons pointed at him. Again, theres no cutscene inserted here. The player is given the contextual key needed to get back on their feet on screen, yet the simplest way to advance the scene is to stand down. Given the contextual options, a lot of players would actually do it I believe, because simon says conditioning. Again several seconds pasd before the game advances but that timeframe is deliberate for the mood. Seeing as the game STILL hasnt thrown them in a cutscene or restricted their movement, Im of the belief the player would simply try to slam himself into the armed NPCs again

And that would result in a game over. Where something like this handled through cutscenes would disengage the player it will also account for their stupidity by removing said control. But if we let them hold onto that control during such a segment, would one risk having to deal with autists and retards screeching about the game being unintuitive and cheap in its deaths simply because it offers them that control and agency where they expect to not have it?


e43256 No.14994486

>>14994442

You're overthinking the modern gamer. What would really happen:

>Oh okay this guy is pointing a gun at me?

>Well I'm just going to sit in my room, *I* didn't do anything wrong.

>Game over

>WOW BUGGED GAMEPLAY MECHANICS

>Okay so I got an email from my viewers…


2838c9 No.14994514

>>14994486

The context of the scene preceeding it is meant to - with hope - cull that idea of the player himself doing nothing wrong. After all you spend the part before the chase in an illegal speakeasy and theres no ambiguity that the long arm of the law wants you for being a criminal.


e43256 No.14994520

>>14994514

But the average normalfag is a dumbass. They will absolutely self insert as the character and ignore the context because they themselves have done nothing, only start the game. They don't "get it"


48bc03 No.14994527

>>14994442

Your example is only giving players freedom in the HL2 sense of letting them jump around during glorified cutscenes and scripted events. Not letting players knock down enemies in this one situation sounds arbitrary and fucking retarded unless you use it to introduce a larger or heavier enemy type.


2838c9 No.14994575

>>14994527

Thats one of my worries exactly about giving the player the freedom to try and push through that blockade instead of taking away his freedom and shoving him into a cutscene. The idea itself is that their weapons are aimed and they actually capable of stopping the player character this time around. Every enemy you managed to shove aside to this point you were capable of doing so simply due to catching them by surprise. Even the first one where the notification is mentioned, if you wait too long to pass through him, he will adjust his aim, knock you down if you try to slam through him, and result in a game over.

The whole "he was vulnerable in this state due to his weapon not being aimed at you meant to be a visual indicator" sounds great in my head and all but it would be too subtle to notice without breaking immersion and suspension of disbelief to note it to the player, wouldn't it? The other issue is in - as you mentioned - introducing a new archtype but theres also a problem there as well I feel. A solution would be to introduce the antagonist earlier in this scene. He is meant to appear after the player "surrenders" but having him be the one to knock him on his ass and offer the game over if he tries to be cheeky can work from a narratives perspective. But that creates the issue of the player not learning they are only capable of knocking those mooks aside only if they catch them unprepared.


1a9692 No.14994642

>>14994575

Do what Ninja Gaiden Sigma did: Introduce the villain, let the player fight and lose like a bitch, display a special ending and unlock something if the player wins.


107bf0 No.14994657

>>14994442

As for the separation of games from movies, I think the difference is that the player needs context in terms of gameplay mechanics. Stories do the same for the story, they first show the world and what it's like and what the characters are like to give you context for the story and world so you can understand and follow it properly. If it's not a fantasy story, they need to do less work because the viewer already has context from real life, that's the base expectation unless you tell them otherwise. Videogames need to do the same for player actions, they need to teach the player what they're expected to do in the game and how to play it.

For example in an FPS game, the player probably knows they're meant to point and shoot at things because that's what FPS games are like (unless you're AAA and want to cater to everyone and their grandma who has never seen a computer before). But no matter how much of a pro gamer you think you are you probably don't expect that you can draw things with the crosshair to cast spells, since FPS games rarely do that.

In your example, you haven't taught the player that "do nothing" is a valid choice in your game. They aren't going to do it because that's rarely something you can do in videogames and not end up dead. Your "context" for that situation is that you need to do something because that's what a game would typically expect of you. However you wouldn't need to tell the player to stop if you've somehow already taught beforehand that it's a valid gameplay mechanic.


2838c9 No.14994688

>>14994642

I actually never played it and I'm not sure how to look for that. Got a youtube video or something on hand?

>>14994657

Good point. Now the question becomes how can one imply that doing nothing - despite given the prompt and option to do something - is a viable option without either breaking suspension of disbelief and having a textbox pop out of the blue telling you that or having the player suffer a cheap game over like in the example J gave previously with the alleyway?


1a9692 No.14994773

>>14994688

Actually, I embellished it a bit. In Sigma you still get the cutscene where you lose even if you win, but it unlocks mission mode and harder difficulties without having to beat the game.


5ebff1 No.14994968

File: b0316a01d93ed75⋯.webm (5.38 MB, 600x500, 6:5, final_chopsticks.webm)

Finished Chopsticks module. She's now really good at playing chopsticks, can redistribute her fingers, and can make short strategies against you. I just need to fix her winning animation since it looks a bit awkward.

Next module is bullying with kisses.


0abe74 No.14995148

>>14994968

This is insane, we're living in a world where multibillionaire tech companies can't build a fucking chatbot without it becoming a Nazi but a single autist in his basement is pretty much creating a thinking and feeling AI.

Cheerio, lad, a thousand years of happiness to you and your waifu.


5ebff1 No.14995177

>>14995148

Well an AI chatbot is a whole other beast. I don't think it's a good thing to use for comparison. My AI just properly setting up animations to triggers and then adding variety. It's not really as dynamic as you think, yet.


7df111 No.14995232

File: cdf446fd58f71d6⋯.mp4 (3.35 MB, 1280x720, 16:9, 15jApn-5JdmvfNqC.mp4)

>>14992677

isn't that Weaverdev's game? Was he EVER on 8chan?

>>14992677

he tweeted vid related this month


2c5409 No.14995240

File: 91e48d98f6c1904⋯.png (14.89 KB, 640x313, 640:313, clipboard.png)

File: 32d4433794f0db8⋯.jpg (85.86 KB, 550x413, 550:413, mfw.jpg)

>if you copy text from a website, the clipboard contains the source website and browser info and any program can access this information

I wish I didn't learn this


44eba8 No.14995242

>>14995232

I thought she was holding a musket for a second.


7df111 No.14995267

>>14992139

are you the same Turrican-copying dev from all these years ago?


7f5e05 No.14995299

File: 322f6a00650ca91⋯.png (722.05 KB, 1117x1600, 1117:1600, 13.png)

>>14992825

Did somebody say moth porn?


107bf0 No.14995313

>>14995232

I guess he finally gave in to people begging him to continue working on it.


00c469 No.14995316

File: 069f74db1ab06a0⋯.jpg (Spoiler Image, 689.17 KB, 1518x2700, 253:450, 5dcb507bd1ecf1b3515c1870b5….jpg)

File: 94430dbfa0548b5⋯.jpg (Spoiler Image, 100.96 KB, 773x880, 773:880, c5cd09126b85525ae5aba58fc3….jpg)

>>14992825

Only cause you asked, anon


0e2613 No.14995867

Any good theory for building a fluid dynamics/ particle physics engine, especially information on actual programming implementations of these things?

I've been thinking recently about create a little 2d engine that represents all objects as combinations of tiny particles and using chemistry/physics to give particles properties that then give larger objects properties.


74b575 No.14995877

>>14995299

>>14995316

Moth girls are cute, but I wouldn't you get covered in their "dust"? Ruins the appeal for me.


d9eec8 No.14995882

File: fb9ae84164a470a⋯.jpg (40.82 KB, 807x659, 807:659, cd7e3299dfe7b03cc37822d46d….jpg)

>figure out bug that's been impeding progress

>at work

>not sure if the little note i've written explains it well enough to future me


00c48a No.14995981

>>14995867

Guy very slowly working on 3D fluid dynamics here. My biggest tip: oh god please don't this is hell please god why.

Anyhow, 2D fluid dynamics are simpler, so good job on that choice. Don't have many resources for that, but came across a few during my research.

http://www.diva-portal.org/smash/get/diva2:676516/FULLTEXT01.pdf

http://bigtheta.io/2017/07/08/implementing-sph-in-2d.html

https://github.com/finallyjustice/sphfluid/tree/master/SPH_GPU_2D_v1

http://www.mijagourlay.com/fluid

Mind you I did not read most of this, I came across them accidentally and saved them because while not relevant to what I needed, they seemed interesting in case I'd ever try 2D stuff.

I'd like to add that making everything particle based sounds like a bad idea to me, but I'm fairly sure I saw something like that during E3 so it must be doable. That was rather low-rez though, like the classic powdergame but as a 2D platformer.


4cb0fa No.14996000

>>14995267

No. I remember that guy, I think. What happened to him?

I just needed a sprite and had Huelsbeck on the mind.


0e2613 No.14996049

YouTube embed. Click thumbnail to play.

Thanks, bud.

I don't want to focus on making a full game at all. Everything is going to be simple shaders. It's going to be more of a simulation of real life using abstractions. I have a hypothesis that if you represent objects as combinations of particles that have certain realistic properties then these objects will act in realistic ways. Doing it in 2D because it is infinitely simpler than 3D and if my hypothesis checks out then it could be expanded to 3D.

The most challenging thing is obviously performance which requires generalization of all these particles to something larger.

I'm just fascinated by stuff like vid related or this: https://www.youtube.com/watch?v=x8Fo2slT2WA


7df111 No.14996098

File: b09d8344c04f0ba⋯.gif (1.16 MB, 360x200, 9:5, Metaball[1].gif)

>>14996000

>What happened to him?

Gone, like nay good anons he may be working on another project tho, it is an anonymous board

>>14995981

if I ever wanted to make any sort of fluid """simulation""", I'd likely just use rigidbodies and a metaball shader cos I'm a hack

https://github.com/i-saint/Unity5Effects


3ad4da No.14996152

File: 32940103faf8d63⋯.png (638.94 KB, 1295x863, 1295:863, that is future me's proble….png)


2b2c7a No.14996234

File: c632bd3d697c201⋯.png (393.23 KB, 500x500, 1:1, ClipboardImage.png)


4b3bf8 No.14996721

File: df15b1c69d86054⋯.gif (939.67 KB, 500x578, 250:289, 1397527251859.gif)

>>14994968

W-Will you…make an in-depth guide on how to make our waifus real when you're done?


4cb0fa No.14996734

>>14985473

>>14996234

I've never used Godot, but I had a look at the documentation. I think you want to shove references of the whole instances into an array and process them from there, not just the IDs. You'd have to clean up the array when you're done.

There also seem to be some grouping functions where you can add things to buckets indexed by a string, and then get that set from there, if you're more interested in a collection of entities rather than specific ones.

Getting the feeling that you're supposed to avoid that kind of programming all together and stay piously OOP-y by letting the platforms themselves decide what to do based on whatever state you gave them, rather than having some procedure tell them what to do.

The documentation's okay on some lower-level details, but it seems rather anemic on the higher level concepts like how the damned thing is designed to be used, other than muh OOP.


50ab00 No.14997184

>>14985473

are you suing kinematic objects?

move_and_collide returns the collision, from which you can get the object id that your object collided with through get_collider and if you use move_and_slide, you can fetch the object ids with get_slide_collission.

Refer to this page:

https://godot.readthedocs.io/en/3.0/classes/class_kinematicbody.html


e5d0be No.14997304

Godot 3.0.3 has been released:

https://godotengine.org/article/maintenance-release-godot-3-0-3

Additions:

>Mono: Exporting to desktop platforms now works.

>Universal translation of touch to mouse.

>print_tree_pretty() was added allowing a graphical view of the scene tree.

>Vector3::round(), Vector2::round(), and Vector2::ceil() methods were added.

>Dynamic fonts can now have a hinting mode set.

>Restore purchases feature for iOS.

>AudioStreamPlayer, AudioStreamPlayer2D, and AudioStreamPlayer3D now have a pitch scale property.

>Show origin and Show viewport setting in 2D editor.

>You can now set Godot windows as 'always on top'.

>–print-fps options to print FPS to stdout.

Fixes:

>Mono: Signal parameters no longer crash the engine.

>Asset library thread usage, this makes the asset library more responsive.

>Several GLTF import fixes.

>Several memory leaks were plugged.

>iPhone X support.

>Several fixes to audio drivers (WASAPI and PulseAudio).

>Several crashes were fixed.

>Export PCK/ZIP now works again


6735e1 No.14997453

File: 8ca1fe481b5eb96⋯.jpg (Spoiler Image, 386.36 KB, 1080x1920, 9:16, amateur game dog general.jpg)

So recently I've been viewing a lot of gameplay from MediaMolecule's next game Dream. It truly fascinated me, while simultaneously scaring me too. Anyone and I mean ANYONE can make an extremely high quality game using the intuitive GUI and intuitive user tools. I know from experience that MediaMolecule doesn't screw around. I grew up playing Little Big Planet. They are actually building a game engine inside of a game. An immensely powerful one with no barrier of entry.

So I was thinking. What purpose does actual game programming really serve? It is conceivable that everything a piece of interactive media can do can be accomplished via automation. By creating the perfect 3D interactive game engine what purpose would lesser game engines and even programming languages serve? Who cares if Regedit created Terraria in his basement by programming if you could accomplish the same thing inside an application completely avoiding any programming whatsoever? You would do it faster, more efficiently, and better than Regedit ever could. Because you would possess the same power even if you possessed a hundred times less skill.


228a59 No.14997472

>>14997453

>completely avoiding any programming

but then how do you tell it what to do


506b4c No.14997586

>>14994968

Fucking legendary. You're waifu is great, and so are you.

>>14995148

Who knew current year could be so terrifying, yet so amazing at the same time?


c48e28 No.14997592

>>14997453

You wont ever get away from programming without programming. Remember in LBP anything remotely complex abused and exploited the tools it came with. This isn't any different. In fact id say the only thing different is that it has better 3d graphics. Which btw will make things take longer to create. There is no single holy grail of programmingless game deving. And if there is, it certainly is not on 6 year old hardware.


8c988e No.14997702

Stupid purely theoretical question, but how would GGPO hold up in a non 1v1 fighting game? Let's say, kinda like Final Fantasy Dissidia or Smash Bros. Would it better be left with delay-based netcode, or server rollback netcode a la Source server?


46962d No.14997908

File: ab83f20e6597c62⋯.webm (116.96 KB, 672x552, 28:23, Video_2018-06-14_195416.webm)

>>14997702

Please help, I've been trying code this for hours, basically I want to turn a simple sprite into a grid of X rows and Y columns (I achieved this by simply drawing quads and mapping the correct texture coordinate), then simply make a waving animation (on either axis), you can see in webm related that rows slide instead of forming a chain (rows should bend and shear instead of just sliding), any tips? I'm using SFML vertex array but I can adapt an openGL solution.


e43256 No.14997955

>>14997908

Here's a general thing you can do:

>Decide on how many chunks you want to have, say 8

>For each chunk, create a quad with X going from (0..1) and Y going from (n / n-1), where 1 is the texure's width

>The result is that you have now broken the single texture into 8 subtextures with their own drawing coordinates

>Keep track of 8 Vector2f values, these are the actual position of the sprites

>Use transforms to build the XY vertex positions for the quads, so you can cleanly change them every frame as needed

>Push it all into the batch and draw it

This is something that is trivially done in a shader and should be faster than a non-shader approach.


b6bfe7 No.14997964

>>14997908

Can't you just, like, make the quads share vertices instead of each having their own? I mean, the bottom of the top quad should share coordinates with the top of the next quad, etc.


e43256 No.14997982

>>14995240

Spoiler that shit anon, it's horrifying


e43256 No.14997990

>>14997964

That won't work, because while a vertex can share the same texture coordinates, each corner of a rectangle can have different positions, so two quads would look mismatched and jumbled, and it won't appear as shearing.


46962d No.14998050

>>14997955

>>14997955

>Keep track of 8 Vector2f values, these are the actual position of the sprites

>Use transforms to build the XY vertex positions for the quads, so you can cleanly change them every frame as needed

I guess my problem was trying to avoid keeping track of the grid and just generate it on the fly, I will try this approach

>This is something that is trivially done in a shader and should be faster than a non-shader approach.

Pls no, I'm avoiding shaders at all costs, for now at least.


e43256 No.14998060

>>14998050

Which SFML are you using? C#? C++? One global Transform is fine, but be aware that it's actually a 4x4 matrix, which is 16 float values under the hood (even though it only exposes 9 values). Thus, making a transform for every point is going to be extremely wasteful.


8c988e No.14998088

>>14998050

You could try calculating the tilt of the sides of each segment (this implies accessing vertex data) depending on the distance of each quad from the center, then offset every vertex to match the tilt.

That said, this probably is very wasteful and you should be using a vertex shader.


4cb0fa No.14998095

File: 69ca7d1355d6eb5⋯.gif (344.49 KB, 256x192, 4:3, artist giving critique.gif)

>>14995240

>Data(➜❤♂)


46962d No.14998105

>>14998060

I'm using Nim bindings, it tends to pass most stuff by value so I try avoiding allocating a lot of values within the update.


48bc03 No.14998358

File: 0dc6c183a50e460⋯.png (45.06 KB, 960x819, 320:273, gdjam.png)

If anyone is interested, there's a vote for the Godot Community Game Jam's theme at https://framaforms.org/theme-for-godot-jam-june-2018-1528803026 . The jam starts on Friday and ends on Monday so if the theme is good I might shit something out for it.


701c77 No.14998393

File: f09ece1994c57d8⋯.png (66.71 KB, 957x686, 957:686, library4.png)

File: d9764cc64f066ec⋯.png (63.48 KB, 995x734, 995:734, top view.png)

Now need to make the windows


a54db0 No.14998558

>>14997592

>>14997472

Check his flag


b1833b No.14998650

File: 09a49731b2f7cf2⋯.jpg (131.74 KB, 1300x956, 325:239, 29f69dc59346a92f22c205a3e5….jpg)

Has anyone here ever looked at the logistics of actually starting a studio?


46962d No.14998684

File: baa831e99e9b32c⋯.webm (1.2 MB, 608x688, 38:43, Video_2018-06-14_220619.webm)

Thanks for everybody's help, storing the grid was actually the best choice.

As for why I want to avoid shaders, my toaster only supports openGL 1.4, I occasionally use emulation to get shaders working but I want to support other toasters for the hell of it


d16144 No.14998977

>>14998650

Office space, pc's, desks, kitchen and miscellaneous, cleaning services, internet. Not so much logistics as management.


2cff0c No.14999095

>>14973751

I fucking hate Javascript and it really has a lot of bad decisions, but that second webm is just pure idiocy. Maybe I'm getting all of this out of context.

>Not putting a break on the default method

>Could've put the default method at the bottom without a break and it would've worked

>Could've just NOT added a default method to it and it would've worked

>Let me show you the specific case where I can screw up my code like a fucking moron because I'm a lazy ass that doesn't like to type shit

> NAW, IT'S THE LANGUAGE, NOT MY ENORMOUS STUPIDITY

What's his solution? Removing fall-through on switches and make the language less flexible?


2cff0c No.14999290

File: 75e761f5e606273⋯.webm (365.77 KB, 426x236, 213:118, Australian_Navy.webm)

>>14999095

Watched through the whole video to get the full context, and as I expected, he's full of shit on that one.

Default is a fucking label and it works as one, if you're a retard and think it's a magic clause that follows different rules than the case label (other than the specific rule that it's going to be called if there's no corresponding case that equals the argument) then yeah, it's not going to make sense to you and you're going to get bugs.

Is this misconception common? I learned how to code with c and c++ and they follow the same idea with switch statements.

Is there any other language that does switch statements like this fat fuck thought? I know functional languages kinda work like that, but no procedural languages.


107bf0 No.14999555

>>14999095

>Removing fall-through on switches and make the language less flexible

Not related to topic, but break should be default and fallthrough should be manual, you're much more likely to want to break than to fall through.


2cff0c No.14999630

>>14999555

Now that I can agree.


65d2e7 No.14999666

>>14999555

That would make the syntax confusing since it assumes a flow of the program that isn't necessarily there. If I write this code:


switch(){
case 1:
if(){
case 2:
}
else{
case 3:
}
...
}

An implicit break in front of every case statement is inconvenient. You should stop looking at switch statements like if-else chains and start looking at them like a series of gotos.


cd0e49 No.15000232

>>14999095

Javascript, much like Rust, is a containment language for morons. Occasionally you have to watch videos like this from people that have escaped their containment zone, but it's worth it. They act as a reasonable filter.

Incidentally "falling through" is not a "footgun" of the language, but a very useful attribute. I've used it for diagonal movement in input handling switches among other things. It's still readable code too. You just need to know the language, which I don't think is an unreasonable thing.


e43256 No.15000499

>>14998358

Can we use Unity?


ad501b No.15000624

File: 1804b2814cc1e70⋯.jpg (439.11 KB, 1280x1358, 640:679, 1523413483525.jpg)

>tfw too embarrassed to ask any of my art friends to draw

Should I learn how to draw bros?


e43256 No.15000645

>>15000624

Don't worry about it, drawing and gamedev are completely separate things. For one, things need to be consistent across multiple images, and also need to have a lot of technical stuff to them (eg, making sure they conform to good texture mapping standards / limited palette), and your average artist normalfag doesn't care about that.

Plus the big thing is that its the artists interpretation of your vision, rather than from your point of view.

Also just like make game, anon


3e8e3c No.15000648

>>15000624

just like make art.


8b1bd1 No.15000672

File: 607962984407ecb⋯.jpg (67.01 KB, 630x399, 30:19, A-Third-of-Leads-Are-Not-G….jpg)

>>15000624

>Should I learn how to draw bros?

Something to be aware of with gamedev especially indie gamedev is you can't 100% rely on anyone. You should fully expect, at a conservative estimate, to make 60% of the game all by yourself.

People will drop out and leave you hung out to dry with stuff. The vast majority of the time indie projects fail is because someone vital to the project left and the entire thing falls apart. You should ideally structure the project in such a way that you can release a basic product by yourself and rely on people only in instances where their work can be replaced later if they leave.

If you involve people, always make a contingency plan if they leave. Since projects do die because of this all the time. I've heard so much about projects where a person leaves then causes a huge drama clusterfuck with the team because they don't want their work associated with the project anymore and you can't enforce anything because no contracts.


b6bfe7 No.15000679

>>14999666

>An implicit break in front of every case statement is inconvenient.

Having to write break; in the other 99% of cases is inconvenient as well. Fall through is neat but it doesn't get used that much compared to how often people just forget the break;.


65d2e7 No.15000711

>>15000679

I don't think that I have had the same experience writing switch statements: I use fall-through quite a lot.

Putting an implicit break only makes sense in the context of someone being careless and writing a syntax error- it does not make any sense in the context of what the syntax is conveying. Instead you take once straightforward syntax and make it confusing, by adding special rules to a once simpler system just so that when new programmers make that one mistake the first time, it accepts it and does what it thinks they meant it to do. This then creates a language where an experienced programmer has to fight the syntax to create the desired results.


8b1bd1 No.15000735

File: c0d1533bc9406ba⋯.jpg (118.05 KB, 700x381, 700:381, 56909258.jpg)

>>15000672

to add onto this a good example of a project structured this way is Minecraft.

Notch initially designed the game by himself and you can tell this with how primitive the art style is. Notch wasn't an artist he was just a codemonkey so he just made a simple block-style game with extremely simple textures that had no real art design to. He apparently didn't even have software to make the models he initially made them using code.

Since the game's release there have been texture packs that greatly improve the overall art style of the game and make it much more uniform and consistent and do much more with the aesthetic than he did. But that isn't so much the point. The point is that he made do with what he was good at and still worked on the project by himself. To the point where he only started to involve other people with the project once it took off.


e43256 No.15001226

So right now I have a SpriteSheet class that I made that holds a reference to a Texture and an IntRect[] that holds all the texture coordinate/frame data. What I want to do is throw a whole bunch of these at a particular manager object and build a sort of sprite atlas. When there the current atlas can't contain it, it moves to the next one, possibly creating a new atlas page.

Is there any good documentation on how to approach this? In particular, I can't imagine how to block chunks of a large texture to make things fit. Eg, if I have a 384x256 .png file, and my card supports up to 16,384x textures, would I just make a quadtree structure to manage the blocked areas?

What about in the cases where a texture is unloaded for some reason, and the area is no longer in use, would I rebalance the atlas page by moving texture information around? etc


e43256 No.15001309

>>15001226

Found this article on quad trees that seems to help finally drive home how to approach them for me.

http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves

>Comments link to this as well

http://artis.imag.fr/Members/Cyril.Soler/DEA/Ombres/Papers/Arvo.Sig87.pdf

>We describe a new approach to ray tracing

>which drastically reduces the number of ray-object and ray-bounds intersection calculations

>by means of 5-dimensional space subdivision


e43256 No.15001365

File: b32cc71814a5f34⋯.png (38.53 KB, 720x870, 24:29, hmm.png)

Wait what the fuck why isn't this crashing? GetValue is an extension method of any array instance. Frames is set to null, so I'm trying to access a field of a null object.

Or is it that extension methods are just syntactic sugar, and it compiles down to me actually calling a static method and passing in a null parameter? But on the other hand, I took a null value and typecasted it to an int[] and that correctly gave me a null reference exception. (Note that the program should never get to GetValue)


e43256 No.15001394

>>15001365

Weird, so even though Frames is null, calling Frames.GetValue() doesn't crash it (it should crash here, because I'm accessing a member of a null object). Instead, it gets to the function call, sees the value is null, then returns as expected. Removing the null check makes it crash inside the function as expected. But it shouldn't even get that far. I don't see why it works and doing ((int[])null).GetFrame() doesn't work


b6bfe7 No.15001399

>>15001394

> But it shouldn't even get that far.

Then why is there a check for null in the first place? Also if it's anything like C++, non-virtual functions are just functions with an implicit "this" parameter. No reason you couldn't call them on null, right?


e43256 No.15001410

>>15001399

The check for obj being null is vestigial since I literally just moved it from my Spritesheet object into a generic extension method - and that's fine.

But my question is about why it's getting that far. Frame is null, and this is what is happening

>Frame.DoThing() // method is called - exception not raised

>((int[])null).DoThing() // method not called - exception raised


e43256 No.15001795

>>15001399

>Why check for null

Actually with some further testing, it seems that even if the array is null, it can still be freely passed around between extension methods as I described above, so I do need to check for null since it won't catch it in method invocation


cd0e49 No.15002088

>>15000679

It's not inconvenient, it's consistent while allowing more flexibility. Which is the way C/C++ usually does things.

If you don't like breaks and ends and closing braces, try Python.


12af65 No.15002376

File: 5ef355802613511⋯.mp4 (1.98 MB, 1920x1020, 32:17, view splitting and deletin….mp4)

Getting started on a little side project that popped into my head where each feature is segregated with it's own output view and player can customize the layout in a sorta tiled WM style.


e43256 No.15002718

>>15002376

What do you do in the case of splitting an odd number?


0e2613 No.15002767

>>15002376

cool but why?

I would much prefer a simple drag'n'drop grid system.


12af65 No.15002848

>>15002718

Right now I'm forcing the layout to have power of two dimensions since it's not the sort of game you'd want to play in full-screen (unless you've got a really small screen I guess) and I want to keep all views character aligned but supporting odd numbers of characters in width or height shouldn't be a big deal to add. It works more like a BSP where it's the partitioning lines that are defining the areas, so just one of the views would be one row/column of characters bigger than the other.

>>15002767

It's going to be an ASCII style display and primarily will use the keyboard, so this logic is for splitting and deleting your active view via a shortcut (I'm just using a mouse to test). But there will be other ways to handle it that are more mouse friendly. It makes sense for what I have planned in my head.


50ab00 No.15002868

>>15002848

>for what I have planned in my head.

write it down


0e2613 No.15002923

>>15002848

Like a strategy numbers-based game?

Seems fine then.


e43256 No.15003159

>>15002848

Sure, but how do space partition implementations usually handle it?


12af65 No.15003284

>>15002868

Maybe later.

>>15003159

Would depend on the type of method you're using I'd think. Maybe I'm misunderstand what you mean by splitting an odd number, I thought you meant odd numbered dimension. An odd number of what?


0e2613 No.15003299

File: 212de9c50d8b506⋯.jpg (207.67 KB, 2000x982, 1000:491, 02149-8912552232.jpg)

Okay. I've got my logo and now a game loop system with physics function updated independent of framerate.

Next step, the rest of the game.


af8d1d No.15003357

>>15003299

did you code in a physics integral as well or are you fine with physics behaving differently on different framerates


96a2fb No.15003374

>>14969884

inline functions somewhat get around the issue but don't work for everything.

Vala looks like C# and compiles down to C which lets you not have to do headers. But takes forever to get setup.

I'm sure it'd be pretty simple to just write a quick program that scans the textfile for functions and generates a header file. By far the simplest answer.


a54db0 No.15003395

File: 03ad8d2738e382a⋯.jpg (88.21 KB, 680x461, 680:461, the culprit.jpg)

>Godot Jam has started

>Theme hasn't been released


b6bfe7 No.15003425

>>15003395

Maybe the theme is a murder mystery.


48bc03 No.15003438

>>15003395

Apparently one guy is in charge of announcing the theme but he's AFK or some dumb shit.


0e2613 No.15003468

>>15003357

I'm not a nerd who knows what that is. I did read that whole "fix your timestep" article but it was gay nerd shit.

My physics are only updated by the difference in time, not limited to frame rate though.


48bc03 No.15003655

>>15003395

They're holding a last minute vote for the theme at https://www.strawpoll.me/15903027


48bc03 No.15003706

File: a1c70d3b4413ee5⋯.png (66.75 KB, 625x456, 625:456, 2018-06-15-130737_2560x144….png)

>>15003395

>>15003655

Looks like we're going with Temperature.


a54db0 No.15003716


228a59 No.15003720

File: a6df96675a4e97f⋯.jpg (112.03 KB, 1200x886, 600:443, a6df96675a4e97f5a913604776….jpg)

>>15003706

bullshit, skeletons were leading


48bc03 No.15003724

>>15003720

I was hoping for Necromancy too, since my entry will be about a disqualified LibreOffice mascot.


05b53d No.15003729

File: 5b9c822c9395f2a⋯.png (117.76 KB, 326x308, 163:154, 5b9c822c9395f2a9aa2290f252….png)

>>15003706

>Looks like we're going with Temperature.

What the hell is that theme exactly ?


48bc03 No.15003733

>>15003729

>The theme can be interpreted freely, but keep in mind that your interpretation should be understandable if you want to get points for it.


f619b1 No.15003783

File: 5a2424e294415cd⋯.webm (Spoiler Image, 14.47 MB, 1080x1920, 9:16, Lastofus.webm)

How is this done?

Is it better to git gud at animations and then make the camera follow animations? Or is this just separate camera movements and then the animations are following after the camera?


228a59 No.15003804

File: 7624dae6241c19b⋯.jpg (30.14 KB, 429x479, 429:479, 7624dae6241c19b1924d3d4a92….jpg)

>>15003783

spoiler this, you vile filth


597bae No.15003808

>>15000624

Grow a pair of cojones.


f619b1 No.15003811

File: 2767ec00a26f2a8⋯.jpg (114.16 KB, 1000x1000, 1:1, godot kills unity.jpg)

>>15003804

Btw there are alot of porn made with unity but absolutely fucking nothing made with godot.

If you want godot to win you all should know how the war is won.


228a59 No.15003825

File: ccbadd9bd1e98c5⋯.jpg (42.13 KB, 640x469, 640:469, ccbadd9bd1e98c55c2a12db552….jpg)

>>15003811

i don't particularly care

in any case this is a vidya bread, not a haram bread


a00d29 No.15003848

>>15003783

Phwoar.


9baf00 No.15003853

File: 9ad22a5879a9716⋯.jpg (167.13 KB, 480x440, 12:11, 9ad22a5879a971627d82d3e888….jpg)

Making a turn based game but I'm new to this, should I use a State machine to control the turns or is there some other way I haven't considered?


bea870 No.15003906

>>15003853

if (turn % 2 == 0) {

takeTurn(player);

} else {

takeTurn(opponent);

}

No need to overcomplicate. Just try and implement from what you know and you will learn way more than if you tried to find the best way. Besides, we all know it's not going to be released so whats the point of trying to implement it using all these fancy language features

also how do you format posts for code


00c48a No.15003936

>>15003853

Depends on your needs, you could just have a single boolean value for PlayerTurn that gets switched as a simplest thing, an array of army IDs if you need more enemy groups, a list of individual pawn turns that you insert into based on their speed, etc.

>>15003906

Just code tags, like classic spoilers but with code instead of spoiler in the brackets.


8cb106 No.15003941

>>15003853

Why do you need a state machine for that? unless you're doing

>player side > enemy side > repeat

Just make a queue of characters (PCs and enemies), sort it based on their speed, pop and reinsert


50839b No.15003945

I figured before trying my hand at /agdg/ it wouldn't hurt to actually know how to program, so I picked up the Dennis-Richie C book from /tech/ and am currently working through it.

My question is when should I get the feeling that now I have "sufficient" experience to start gamedeving without basically relying on say Unity's asset or nodev features?

Honestly even if I wasn't gamedeving I wish I would have learned this stuff sooner. This is pretty fun and I might end up using it.


9baf00 No.15003959

>>15003936

>>15003941

It's a recreation of a simple tabletop roleplaying system. I need an opening state where the player and the enemy make choices about their opening gambit, then I need a state that animates that opening after deciding it's outcome based on dice rolls, from there the winner of the opening gets initiative at which point turn order is decided. Here I need a simple player choice turn, enemy choice turn, and animation turn where it all plays out and resolves on to the next round. Honestly it all plays out a lot like Pokemon but with a few more complications like shifting initiative based on who won the last round. I may complicate it later by adding more units (fits the theme but I'm really trying to keep things simple).

That's why I'm thinking state machines.

>State round { OpenPlayer, OpenEnemy, OpenAni, PlayerTurn, EnemyTurn, AnimationTurn }

Then just set up methods to cycle through and check which state it should be on.


e43256 No.15004076

>>15003284

>Width is 255 and you need to partition it into two parts

>Result is 127, 127, and 1 left over


4cb0fa No.15004175

File: 12aa2678a853dda⋯.png (135.41 KB, 477x410, 477:410, SPRABULA-DDD.png)

>>15003945

You find out as you go, which probably means throwing away plenty of attempts. Don't actually throw anything away, you might be able to use bits and pieces or find good examples on how to do very generic things or use frameworks.

Keep things small and simple and work on problems as they arise, it's the best way to learn. As long as you're not horribly attached to what you've managed to create, hitting an impasse and either starting again or starting on something else won't feel quite as terrible.

Over time, you'll get a feel for what you can slog through and what's a lost cause. Because you will make mistakes, and most of those are on the high and abstract level.

>>15003959

A state machine sounds like a perfect fit for the job. Main loop's going to loop through some housekeeping functions and then execute a few, or maybe a single function under a particular switch case on the state. One of those returns a state. That's the next state. Which may or may not be the same state.

That'd be one way to do it, if you want to avoid singletons, globals, statics and passing any of the main loop's business around to its constituents. The housekeeping functions could be used to short circuit the usual state business if need be, like when pausing or some other business needs to happen.

Or you could go with piously OOPy route and have your main loop hold a state object which it continuously calls updates on, with separate states and behaviors being separate classes under a common updating interface. They get a reference to the main loop whenever instanced, and they set the main loop's state to a new object at their own leisure.

Or something along those lines.

On a progress-related note, I got loading data in from files working, fault tolerant and order-insensitive. It's kind of neat going from hardcoded make weapon instance, set fire rate, set damage, set projectile type, set whatever-the-fuck-else to a simple make_instance("LJN cannon") and have that name and associated data looked up and cached from a JSON file without having to recompile.


9baf00 No.15004222

>>15004175

Yeah I think I'll make a TurnManager script to run the turns and make it a static and just have the rest of the scripts piously obey it's rules and see how that works, I'll keep in mind what you've said. Nice progress by the way, I was playing with a similar thing for NPCs but have been sticking to hardcoding for now out of simplicity.


12af65 No.15004281

File: a128593e583aedc⋯.mp4 (512.34 KB, 1920x780, 32:13, keyboard nav.mp4)

>>15004076

Depending on what you're using the space partitioning for 127.5 could be valid. For me I'll just bias the front partition by one so a 255 character width view will split into 128 and 127 width views.


55d9a6 No.15004403

I've been using JSON for most my game data, but now I am seeing parts where it will fall flat (game functions, AI, etc).

Would a introduction of Lua or another scripting language be a good idea for these functions.

On a related note, if I do include a scripting utility, how would I manage to use hard-coded game variable (ex Entity position etc) in the script?


5fed96 No.15004457

>>15004403

Just to clarify, you're talking about something like programming AI functions into a separate script outside of your regular code (I'll assume C++), which you then programmatically call and run from inside your C++ code, correct?

I would definitely recommend not using JSON to store anything other than simple variables. That sounds like an absolute nightmare to debug. So, yes, your idea of using scripting languages to fill that void is a good one. I've heard very good things about Lua and I know it's been used in several AAA projects, like World of Warcraft, so I can't imagine you could go wrong with it.

Looking at Lua, it looks like you just push the variables you need into a stack, which Lua pops as necessary. Here's an example:

http://gamedevgeek.com/tutorials/calling-lua-functions/


65d2e7 No.15004489

File: deb9f1cc24a0846⋯.png (81.28 KB, 1376x852, 344:213, poide64_2018-06-15_17-30-3….png)

I wrote the code for portal generation based on the tutorial I have been using, i'm tracking down some NaN values with a debugger since this function just returns a portal that is all NaN's, which is just unusable.


55d9a6 No.15004500

>>15004457

It's in Java, but I imagine the process will be mostly similar.

Thanks for the help anon.


6c8761 No.15004742

>>15003853

I know that this will sound like bullshit, but always try doing the your way first, it'll probably come up as pajeet at the beginning, the idea will get in your mind and you can optimize later and then you can consider asking, I say this because sometimes people grind their way through and doesn't come out as pajeet at all, people can have some ingenious insights while left to improvise. I've seen devs recreating data structures from scratch using simple drag n drop functions without even knowing what the fuck a data structure is, imagine if they did.

Also, it's a good habit for prototyping, even if your code is trash it's good to know if your game isn't trash either. What would be the point, for example, of going academic on turn based tech just to realize one week later that your game feels better real time?


0c094c No.15005260

>>15003945

>C

>game dev

3+ years. And it will take you a retarded amount of time to make anything anyway and rapidly the project will become too big and you won't have the skills to manage it and your decisions will be too hard to change and then you'll quit.

>b-but anon

Here are the following things you will make by hand: garbage collection, extension/embedding a scripting language and making an API, most common data structures, data serialization for those structures.

>b-but /tech/

LARPers. They don't have a programming thread. These threads have more code and coding posted to it than /tech/.


472969 No.15005316

>>15003945

Learn C++, and then come back.


9baf00 No.15005333

>>15004742

I'll keep that in mind, you make a good point as anything fucked up can always be re-factored as needed.


65d2e7 No.15005336

File: 47f6184d49d1e7a⋯.gif (1.43 MB, 300x300, 1:1, 47f6184d49d1e7a0d4d91dd075….gif)

>>15005260

If you do everything right it should only take you around two years to make a basic 3D game with your own engine in C. With a 2D game, it should only take a few months. C really isn't very difficult to make games with. You could even use a 3D engine that accepts C, then it won't take that long at all.

You're really not understanding how this works if you think that by going to a language without all of the cancerous features you're used too (Garbage Collection, etc) that you just need to reinvent all of that bloat in C to use C. The advantage of C is that you don't need to use features like Garbage Collection anymore. If you can't imagine programming without that, you'll just waste your time trying to turn C into Java or something instead of actually making a game.


0c094c No.15005367

>>15005336

>you don't need GC

Oh yeah what happens to dead entities? Unless you do nothing to them and hope the game ends before you run out of memory you have GC.


b96e66 No.15005379


65d2e7 No.15005398

>>15005367

This is my case-in-point: you've created this idea of how complicated and hard programming in C is because you haven't begin to work outside of the limitations of languages like C#, Java, etc.

The way that this works, is you allocate the memory and free it manually… a GC is a different process than this. Although if I have a dead entity, I probably won't free it's memory, and will just reuse that memory for whenever I have a new alive entity, since it would put less strain on the memory allocator. On a level's completion I would unload and reload the data structures so that I don't run out of memory.


aeb8fe No.15006153

>>15002376

>>15002848

What are you doing where you're putting a tiling WM into a videogame?

I'm genuinely curious now…


7f436c No.15006189

File: 7533619baacbcfd⋯.png (318.63 KB, 803x790, 803:790, 26417810714315137741326.png)

How do I make an MMO that can't be hacked?


e3260f No.15006204

>>15006189

If you need to ask that, maybe you should try looking in to making a basic multiplayer first.


1a9692 No.15006213

>>15005398

Actually, you should make the engine compare the assets of both levels so it doesn't unload anything that both levels have. Small code increase for potentially enormous improvements in load times.

>>15006189

Install Gentoo. Make sure that everything (EVERYTHING) is calculated and checked serverside, with the client merely acting as an interface. Pray your server is robust enough to handle it.


65d2e7 No.15006285

>>15006213

That's the idea… i'm just not trying to cover basic optimizations to give a simple example like that.


af8d1d No.15006637

>>15006189

You can't without making the game shit.

Hacks are made to accomplish two separate things:

>Do things the player shouldn't be able to do (godmode, infinite ammo, noclip, etc.)

>Obtain information the player shouldn't be able to obtain (wallhack, see invisible entities, etc. Often used in conjunction with bots.)

If you want players to only do things they should be able to do, then all game logic has to run server-side.

This creates a new problem, the client has to wait for the server to respond! This creates laggy and unplayable garbage!

Good news, there is a solution: you can extrapolate the client's state! But this means that the client has to have some knowledge about what goes on in the game, which in turn means that people will hack to obtain that information and use it to their advantage.

So the end result is you either create a clunky piece of shit, or you have hackers.


28a815 No.15006862

File: f92ff52dfcaa9df⋯.jpg (58.08 KB, 1000x322, 500:161, science.jpg)

>>15006637

What would be the benefits and possibilities of having calculations done on user machines instead of on the server, if you'd eliminate the risk of hacking? I just imagined a stupid idea during a time when internet cafes were still a thing, an MMO that does almost everything on the side of the user, that could be only played in certified places, where cafe owners would personally ensure that none of the clients are using dirty tricks (you get beaten up if you break the rules). Would this idea make any sense? Or at least would access to much more machines allow for making some cool shit that's impossible with the how things are done?


af8d1d No.15006913

>>15006862

Stop trying to make distributed anti-cheat happening. It's fucking retarded.

>What would be the benefits and possibilities of having calculations done on user machines instead of on the server, if you'd eliminate the risk of hacking?

The main benefit is that it allows you to have the full gamestate on the client. This allows you to simulate the game entirely on the client, completely negating any sort if input lag from latency, at the cost of things bugging out slightly if multiple players do things that interrupts eachothers actions if the time it takes to perform the interrupt is higher than the latency. (For example, 2 players instantly picking up the same item at the same time will cause them both to obtain the item. With some better code, you can make the item then disappear a moment later from one of the two players to resolve this inconsistency.)

Another benefit, which is why korean MMO's are so hack-prone, is that it means your servers can often forego running much of the game play logic, lowering hosting costs.

Anyway this derails the discussion entirely from cheating into "what is netcode lmao". If you want more info you should just research how to online multiplayer to begin with.


28a815 No.15006939

>>15006913

I don't give shit about making online games. I was just curious if it this topic is about anything other than a conflict between cost and security/performance.


4cb0fa No.15006940

File: 52a5f5bc28b0e74⋯.gif (34.67 KB, 588x388, 147:97, jerkcity1880.gif)

>>15006862

The advantages are in latency, responsiveness and potentially reduced server load. Assume there's some latency between you and the server, but on your end, you're aiming at an opponent and fire.

If everything was on the server side, the opponent might not be where you were aiming by the time your message gets to the server.

If, on the other hand, the game simulation was partly offloaded onto the client, if your sent game state seems plausible to the server, it'd still register a hit. This compensates for the lag and missed messages to some extent, but necessitates lots of complexity in which order to process events and how to determine which actions are or are not plausible.

Depending on the kind of game, this can be anything from a minor annoyance to a gamebreaking issue.

The stupid idea would be a hard sell, trying to entice players to a cafe-chain-exclusive MMO. Almost certainly something only for the Asian market.

In any case, who watches the watchmen? What's stopping the cafe owners from being bribed or taking part in cheating themselves, to sell ill-gained in-game resources to other players or just dick around?

Written agreements and good faith aren't exactly robust anti-hacking measures, even more so in Asia.

The end result is an MMO that appeals to a much narrower demographic and still needs decent measures for anti-hacking. Maybe you could do something with supplying the hardware as well, or package the game in a way that would make it very opaque as to how it works. But then you're just trading anti-hacking for anti-reverse-engineering, and once that gets broken, you'd still need anti-hacking.

Sure, it's a barrier, but if the game were to get popular, it'd always be just a matter of time. If there is something in the game that could potentially be traded to someone else, there would be motivation to break the game even faster.


e16c4c No.15008062

YouTube embed. Click thumbnail to play.

>>14962945

Posting progress. It's been a long time.

V-visual novels count as game deving, right?

I'm the guy who made the music for this teaser-thing. How is it looking so far?


a54db0 No.15008151

File: 200583e7e8eafaa⋯.mp4 (13.59 MB, 800x400, 2:1, 2018-06-16_10-10-53.mp4)

choo choo


4cb0fa No.15008540

File: 6c8b52bf2a2b2ab⋯.png (63.16 KB, 321x357, 107:119, i guess.png)

>>15008062

It has that "low-effort mobile game that only superficially carries the portrayed themes as its only distinguishing feature, desperately trying to draw you into disappointing gameplay" stink to it, even if it's supposed to be a trailer for a visual novel.

I don't know what exactly is leading me to that thought, but it's definitely there. The particularly lazy-looking shadow under all the text isn't helping, but there's more to it.

You seen ads for mobile games, the particularly bad ones where all the motion is smoothly tweened-zoomed-rotated? Those vibes.


e16c4c No.15008673

>>15008540

>"low-effort mobile game that only superficially carries the portrayed themes as its only distinguishing feature, desperately trying to draw you into disappointing gameplay"

Jesus, that's bad. I can't stop seeing that myself now.


cd0e49 No.15008925

>>15004403

http://www.grimrock.net/2012/07/25/making-of-grimrock-rapid-programming/

Legend of Grimrock dev talks about integrating Lua into their game and how they used it. If you look into modding Grimrock you find that probably 100% of the game logic is in Lua.

I've integrated Lua and it's not too bad. You can call C functions directly using basically C syntax from Lua using the FFI (part of LuaJIT). Otherwise, just realize that Lua as part of your C++ program is just an object that holds the Lua state. You can manipulate it and pass data in and out using the Lua stack. The stack is maybe a little annoying, so write a few simple helper functions to get data on and off the stack.

I have a large set of C functions that act as an interface to the rendering, sound, game logic, and physics systems. My Lua code makes use of these functions, calling them directly, so I don't use the stack all that much except for AI scripts.

The way I've split it up is that anything that must happen more than about 10 times a second is coded in C++. Lua code runs concurrently and handles higher-level functions. So for instance, AI: Lua runs scripts to decide which target to pursue but the frame-to-frame navigation of the world is all in C++. I also use Lua to define all objects & their properties, shaders, materials, inventories, and even design the in-game GUI layout. If this is your first time around, don't use Lua. Do it all in C++. On the side, try integrating Lua with a small demo application. The benefits will be obvious quickly.

>>15005336

I'll just add that you don't have to "learn C++", you just need to learn a very small subset of C++. After working through examples in the first 3-5 chapters of an intro book, take a working demo program, modify it, and learn by reading through other peoples code that works and does something close to what you want.

I always recommend Open Frameworks to newcomers who want to get into 3D with C++ and want all of the annoying things taken care of. It's minimally restrictive and organized pretty well.

>>15005367

Ring buffer, memory pool, entity management class, a simple looping array index. Depends on what the entity represents. your question is a critical architectural decision and if you knew C/C++ you would know how to answer it based on your particular situation.

>>15006213

>you should make the engine compare the assets of both levels so it doesn't unload anything that both levels have.

Yes, this is a common solution. I have my create/load routines check entity unique IDs and if found in the active entity list, simply return the reference to it rather than load anything. After a cap is reached, oldest, unused assets are freed. I only have 2 levels designed with 3D assets though so I've only tested this with fake assets.

>>15006913

>This allows you to simulate the game entirely on the client

Oh boy. So you are using a custom fixed-point math subsystem, replacing all floats & doubles? Fully deterministic physics engine? Welcome to the wonderful world of exposing minute differences in CPUs. Syncing the clocks between two or more independent simulations alone is far from trivial. Better be encrypting those timestamps and clock tick updates too.

>>15006939

It's a very difficult technical challenge and has been tried a variety of ways. It seems simple at first. It's not simple, even at a conceptual level once you account for real hardware. Interesting question actually.

>>15008062

Looks cool. I'd play it.

>>15008540

>lazy-looking shadow under all the text

fuck off, it makes the text readable.


4cb0fa No.15009077

>>15008673

Sorry if that came across as a little too sharp without offering any ideas how to improve it. This sort of thing is really not my forte.

Maybe making the pan start from a standstill and having some more variation in the movement speed would help. It might be moving a little too fast as well, in terms of setting the tone. You could try screwing around with the video playback speed on YouTube or HookTube and see if something clicks better.

Maybe some snappy cuts or some other way to include silhouettes or imagery of these grotesque abominations would help break up the monotony.

Playing around with general contrast curves of the backdrop might accentuate the atmosphere.

Maybe playing around with the general presentation of the text as well. "The Blightlands." in that particular font right in the middle of a black screen feels like it's going for a book- or memoir-like narrative. I could hear some old curmudgeon reading about these cursed lands. I like that, but nothing else really resonates with that germ of an idea.

>>15008925

I'm not suggesting there should just be white text on a gray backdrop, but that the particular implementation of providing contrast just doesn't feel right. Maybe a different take or different parameters on the shadow might leave a more positive impression, or some other way to keep it readable.


f9fdf3 No.15009382

>>15008062

The atmosphere of the art and the music is good. I sort of agree with what >>15008540 said, but…. Something about how that man at the end is drawn and animated somehow changed my mind from "this looks shit" to "this looks like they're doing their best at making something good". In other words I'd say it looks promising.


af8d1d No.15009532

>>15008925

>>This allows you to simulate the game entirely on the client

>Oh boy. So you are using a custom fixed-point math subsystem, replacing all floats & doubles? Fully deterministic physics engine? Welcome to the wonderful world of exposing minute differences in CPUs.

I get that you're trying to be cheeky breeky, and you have all the reason to. But this isn't as big of a problem as you think it is.

Modern compiler standards don't allow the compiler to create code that can produce differing results on different processors.

There's plenty of games that rely on that behavior too, and if you google around you would be able to find more information.

>Syncing the clocks between two or more independent simulations alone is far from trivial.

Pretty trivial. When you receive a tick, create a clock for it. Take the average or median of the last N clocks, and then subtract ping/2 from it. Start of the art clock sync achieved.

>Better be encrypting those timestamps and clock tick updates too.

Are you autistic?


111ae1 No.15009563

>>15008151

What game are you making?


18f578 No.15009589

>>15008151

>>15009563

Side Scrolling Desert Bus sequel.


111ae1 No.15009614

>>15009589

More like a spin off. Desert Bus: Desert Train


4cb0fa No.15009629

>>15009614

Desert Bus Gaiden: The Old West Story


a54db0 No.15009681

>>15006940

> Written agreements and good faith aren't exactly robust anti-hacking measures, even more so in Asia.

There was technology show where asus or some other computer manufacturer was talking about how many hacks their computers could run while running PUBG, it's pathetic.


a54db0 No.15009772

>>15009563

>>15009589

The player alternates between shooting enemies, shoveling more coal in the train, and repairing parts of the train that have been broken by enemies. You lose when the train reaches 0 hp, you win by surviving a certain distance. Thinking of an Oregon Trail style map if I have time.


e16c4c No.15009902

>>15008925

>>15009382

>>15009077

That's fine. We're actually doing what we can, hope the final result is good and enjoyable, or at least we get the experience. Thanks everyone. I'll talk with the team about it.


48bc03 No.15010130

File: 198f32d6b522cab⋯.png (20.15 KB, 198x239, 198:239, whatever.png)

>more or less figured out my Godot Jam project

>go to the editor

>realize after several minutes I've completely forgotten how to use the Control nodes

>for a concept that would rely heavily on them

fugg


8b1bd1 No.15010259

File: 287b781b6db8ee9⋯.png (2.58 MB, 1920x1080, 16:9, unknown.png)

>>14988207

Update: I think I got animations working. Although it only really affects the lower body. Further testing is needed.


fadcd5 No.15010688

File: 9448627d72f9e30⋯.jpeg (5.31 MB, 6400x4800, 4:3, Day12.jpeg)

File: e89609e723d7e9b⋯.jpg (67.11 KB, 1281x721, 183:103, MLvIR1NcwA0.jpg)

File: a5baa3d145ec10d⋯.jpg (88.6 KB, 600x739, 600:739, speculars.jpg)

File: 43ed2daa6866b25⋯.jpg (470 KB, 1920x1080, 16:9, 1492799521808.jpg)

>>15000624

I don't think this has been said yet, but learning to draw takes a fuck-ton of time.

I'm an amateur, but from my own experience and study I believe this is the 7 year timeline to becoming a master:

>Physical drawing skill

>2 years

Build muscle memory, learn correct posture, draw with your arm, and be able to produce lines, curves, and simple shapes consistently. It's all about the grind.

>Making the illusion of 3D space

>2 years

Drawing and thinking in 3D space and seeing a plane not a piece of paper. Perspective essentially, but the skill is a lot broader when you get into scale and irregularly shaped objects. There's less grind here and more thinking, but you still grind 90% of the time while developing your understanding.

>Applying mechanics like movement and light while learning what "rules" things obey in the real world.

>2 years

After learning how to draw what you want and how to create 3D space you now need to learn how to apply both those skills to represent whats going on in your art. Now is a good time to study life and natural phenomena. Programmers who work with 3D graphics can give you some good perspective on the mechanics side of things.

>Building your visual library and making stylistic choices.

>1 year

The good stuff. Now that you know how to draw, how to create a 3D illusion, and how things work in the world, you can start to produce believable people, places, and things. This is where people specialize using a mix of principles laid out above, such as making comics, animations, and paintings.

Now you probably don't want to do all that shit because you want to make a game. So cheat.

Sprites and other simple graphics are easy to make and with a little effort can be passable. Further make something cute if you can. People love cute shit.


e70bcb No.15010919

>>15000624

Takes a fuckton of time, just trace assets from Makehuman

http://www.makehumancommunity.org/


e43256 No.15011340

I have to pass 4 vertices into a function to process them. What naming convention do people usually do?

>DoThing(a, b, c, d)

>DoThing(p0, p1, p2, p3)


cd0e49 No.15011588

>>15009532

You've obviously never tried this. Go ahead. Give it a shot.

There isn't consistent behaviour across compilers let alone CPUs. That's not even considering floating point math, which produces essentially random rounding errors. Syncing clocks between machines is nearly impossible, especially on a non-RTOS operating system. What you suggested was a master clock source, which is fine but it completely destroys the premise: independent simulations on client machines. 13 of your 20 concurrent simulations give slightly different results. What now? Spoofing packet timestamps and ticks is a standard attack against multiplayer games.

Actually, it's far more difficult than you think. That's OK. It's standard human nature to simplify things you don't understand to avoid anxiety.


4002c6 No.15011784

File: 75ccdd6c5d53a5b⋯.png (47.49 KB, 623x371, 89:53, ClipboardImage.png)

>>15011588

>"It's standard human nature to simplify things you don't understand to avoid anxiety."

>Always assume that anything I don't understand, and sometimes things that I do understand, are probably even more complex than I think they are.

>Also have a lot of anxiety about everything, for reasons I have yet to deduce.

I think you just solved the fucking puzzle.


4cb0fa No.15012325

>>15011340

do_thing(x, y, z, w)


af8d1d No.15012744

>>15011588

>You've obviously never tried this. Go ahead. Give it a shot.

Last demo day I put on a multiplayer game that relies on it, and all the people that joined the server didn't desync at all.

So yeah. I gave it a shot. It works. Yesterday when I managed to compile it on linux (with clang), it actually doesn't desync from my windows build (compiled with gcc).

>There isn't consistent behaviour across compilers let alone CPUs.

Just static assert STDC_IEC_559 to exist. Bam, it's consistent. Google it, you fucking idiot.

>What now? Spoofing packet timestamps and ticks is a standard attack against multiplayer games.

You do realize the original context was what you were able to do if you didn't have to worry about hackers, right?

Not only that, but that's a vulnerability you can't avoid if you want any lagg compensation whatsoever. It's something you simply have to accept if you don't want to make a clunky piece of shit.

>It's standard human nature to simplify things you don't understand to avoid anxiety

Look in the mirror.


e43256 No.15012883

One last thing before I go to bed. SFML has two graphics objects, Image and Texture. Image is the raw data, and Texture is the same data, but pushed to the graphics card. I want to do texture atlasing; would it make sense to then handle it with CPU-based Image handling stuff and splice them together then, or should I shove it to the GPU and like, do a dynamic texture and have them draw to each other?

>>15012325

Oh yeah, I forgot about that pattern. Now it's a Quad object with X Y Z W, which are Vertices

>SomeQuad.X.TextureCoordinates.X

Looks a little weird but it won't come up outside of one or two contexts


427bf2 No.15013228


275cb8 No.15013262

>>15003783

tumblr? twitter?


1f9d04 No.15013826




[Return][Go to top][Catalog][Nerve Center][Cancer][Post a Reply]
Delete Post [ ]
[]
[ / / / / / / / / / / / / / ] [ dir / 8cup / britfeel / f1 / hkon9 / hkpol / pdfs / throat / vichan ]