[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology

Name
Options
Comment
Verification
4chan Pass users can bypass this verification. [Learn More] [Login]
File
  • Please read the Rules and FAQ before posting.
  • You may highlight syntax and preserve whitespace by using [code] tags.

08/21/20New boards added: /vrpg/, /vmg/, /vst/ and /vm/
05/04/17New trial board added: /bant/ - International/Random
10/04/16New board for 4chan Pass users: /vip/ - Very Important Posts
[Hide] [Show All]


[Advertise on 4chan]


File: johnnyboy.png (181 KB, 435x308)
181 KB PNG
/gedg/ Wiki: https://igwiki.lyci.de/wiki//gedg/_-_Game_and_Engine_Dev_General
IRC: irc.rizon.net #/g/gedg
Progress Day: https://rentry.org/gedg-jams
/gedg/ Compendium: https://rentry.org/gedg
/agdg/: >>>/vg/agdg
Graphics Debugger: https://renderdoc.org/

Requesting Help
-Problem Description: Clearly explain your issue, providing context and relevant background information.
-Relevant Code or Content: If applicable, include relevant code, configuration, or content related to your question. Use code tags.
>>
I guess I'm baking now. :\
Pray for the original baker.
>>
raytraced audio best audio?
you wouldn't want to leave out the deaf people, right?

https://www.youtube.com/watch?v=u6EuAUjq92k
>>
>>108849078
sorry, my game engine is made with eugenics in mind. handicapped people are not welcome
>>
>>108849147
>handicapped
the term you're looking for is "defective"
don't let them control the language
>>
>>108849202
youre right, i dont know what came over me, accidentally using their flowery language
>>
i am making softbody physics, the dynamics and collisions now all work, should i torture myself to do fancy dynamic data structures for the broadphase or just slap space hashing on it and call it a day (it will probably work better anyway)
>>
I recently picked up a CRT monitor and it's increased my dev efficiency 100 fold.
>>
https://youtu.be/eheKKQdhCs4
as much as I hate the recent trenchbroom fad, I think if you can git gud at quake mapping it's basically the optimal method of creating aesthetic 3d levels in a reasonable amount of time without 20 years of experience in 3d modeling software
>>
>>108849898
learning actual 3D modelling software is better
>>
>>108849954
For world building? Not really. Nothing is going to beat brush modeling for speed of development, and indie devs probably aren't going for photorealistic environments so the fidelity is fine. Even if they were that's mostly about texture work anyways.

You're still going to need to learn Blender or something though unless you're making like a liminal space walking simulator since most 3D games require, you know, 3D modeled characters and stuff.
>>
>>108850013
All those editors can do well are blocky hallways
>>
>>108850138
Tell me you gave up after 2 minutes without telling me you gave up after 2 minutes.
>>
>>108850264
Been mapping since Doom, made maps for Quake and Half-Life with Worldcraft
Eventually I was working on a game that used a Worldcraft / Hammer knockoff for maps and we had to cancel the game because the mapping pipeline was so bad
>>
>>108849898
I take Q3 map files with curves/patches and generate it into a mesh in my engine. I think it works quite well. Prototyping can't really be much simpler. Q3 is definitely the way to go since you get better texture projection options and have the ability to make tessellated curves/pillars/etc.
>>
>>108850138
As opposed to round hallways? I don't need my game too look better than Half-Life 2 lol.

>>108850299
>we had to cancel the game because the mapping pipeline was so bad
Yeah I doubt that is why it got cancelled. You could have just converted the maps to meshes and continued onwards if that was a real issue.
>>
>>108851237
The issue was producing maps that the game needed was very slow, because they weren't Quake-style blocky hallways
>>
>>108851245
Valve had no problem making Half-Life 2, Portal, Team Fortress 2, and Left 4 Dead with blocky hallways. Sounds like a skill issue. Blaming the tools for your own mistakes is dumb especially when you could have just changed tools.
>>
>>108851263
Valve is a great case study for this, like you can look at the original Half-Life 2 and see how low detail and angular many of the levels are, then with Episode 1 and 2 and Portal 2 they start introducing more standard mapping features to their editor, using complex shapes and imported models, and their maps look much better
>>
>>108851271
So it never occurred to you that it's possible for you to use both in conjunction as well? Whatever you keep making whatever it is you're making I don't understand why you have a hate boner for any specific tool. I don't go around crying about how bad 3DS Max is.
>>
>>108851301
>I don't understand why you have a hate boner for any specific tool
I just told you why, I had to cancel a project because of it
>>
>>108851305
>I had to cancel a project because of it
But that's very obviously not true. That's like if the Fez guy said he had to cancel his project because the tile map editor he used didn't support 3D.
>>
>>108851327
>But that's very obviously not true
How the fuck would you know?
We commited to the workflow, got 1.5 years in and making maps was taking way too long
To switch to a different pipeline would have taken too long, we were out of money
>>
>>108851245
>CS:GO and CS2
>Every call of duty ever
>Titanfall
>Modern doom
Yeah, basically just hallways.

>>108851271
>more standard mapping features to their editor
The fuck are you talking about? 99% of the early evolutionary steps were just raising the patch limits, adding the ability to disable tess, and adding vertex painting.

>>108851301
The dumbass acknowledged this very fact, just to continue seething about his failed project. Sorry, "we" /"our" failed project.
>>
>>108851337
So the project was mismanaged and you're blaming the tools. Got it. That's what the good craftsmen always say!
>>
>>108851343
>The fuck are you talking about?
Their editing tools evolved to include stuff that wasn't bsp brush based, so most of the maps you see are just regular geometry
>>
>>108851345
Mismanaged in the sense that we chose the wrong tool, yes
>>
>/g/ still thinks graphics are more important than gameplay
doesn't surprise me since people here think buying rtx 4090s is what gaming is all about
>>
>>108851359
You're such a dumb gorilla nigger you think a few minor extensions freetards were too dumb to add themselves = "NOT HECKING BSP"; even though that was never the standard to start off with. You even had to truncate your quote because it meant citing not-brush related Q4/D3 entities/features and the minor developments thereafter.
>>
>>108851364
Well maybe don't try to make an open world game with quake tools LMAO
>>108851359
You've never loaded up a HL2 map in Hammer ever in your life and it shows.
>>
>>108851379
I have no idea what you're trying to say
Trenchbroom / Quake is 99% brush-based BSP
If you look at a newer value game like Portal 2 most of the stuff you see on screen is not made from brushes, they're just imported models
>>
>>108851381
That's why I said Valve games were a good case study, because they started out primarily brush-based and moved away from it over time as each new game came out
>>
>>108851390
>Trenchbroom is brush-based *
TFTY. Now stop blaming the original quake and "muh bsp" for you being a dumb gorilla nigger
>>
>>108851401
What are you talking about?
>>
>>108851397
>>108851390
You people have no idea what you're talking about. Do you go onto Steam and seethe every time you see a game made with brushes? I have a strong feeling you're just Unrealtards. Is Tim Sweeney in the chat?
>>
>>108851413
No I loved making maps with Worldcraft it just sucks if you're trying to make something that doesn't look like Quake
Detailed geometry, organic outdoor stuff, open world, etc
>>
>>108851413
No, he really doesn't. see> >>108851408 >>108851390 >I have no idea what you're trying to say
>>
>>108851435
Thats because you lack communication skills not because I don't understand the topic
>>
>>108851426
Call of Duty 2 famously looks just like Quake.
>>
>>108851440
No idea what map editor they used for that but it wasn't Worldcraft
>>
>>108851440
All of the call of duties use radiant for mapping. All they did was add terrain patches (displacements/disabled tess), height painting, and then abused model spam for fake world depth (debris and such). Granted, the earlier revisions were a POS, but it's still pretty much the exact same thing as what they had in the mid 2000s after Q4.
>>
File: 1757576785457065.jpg (8 KB, 229x250)
8 KB JPG
>>108851413
Why is it that every low IQ retard somehow always ends up sperging out at Unreal/Epic/Sweeney when cornered?

Reminds me of Americans randomly lashing out at China for no reason mid argument.
>>
>>108842072
Newbie here, this post made me realize just how much my (first) engine is deeply coupled with SDL everywhere.
I'm a shit coder and I need examples to learn from, any resources on how to keep things neatly separeted? Or is it something you just learn from experience?
>>
>>108851472
>Or is it something you just learn from experience?
Pretty much this. There are plenty of open source projects you could find that use SDL, though and it might be worth looking at them to figure out how they did things. Architecting things "correctly" will always be the biggest hurdle for anybody. The more you learn the more you'll figure out that you really don't like what you were previously doing. It's why so many projects start over from scratch. Basically don't be afraid to fail just DO.
>>
What’s your build environment like? I’m in love with the visual studio suite but it’s obvious c++26 support isn’t coming for years and I want to get the jump on reflection and embed. I’ve spent the last few hours getting cmake/ninja/gcc up and running.
>>
>>108852395
10x as IDE, Houdini as DCC and just about everything I can fit in it really. Don't really use anything else.
>>
>>108852395
>embed
You can already do that, though not in a standarized way across compilers as far as I know. I'm using rc resource files in visual studio and incbin elsewhere, with fallback file reads for those for dev builds and because embedding is a bad practice in the long term.
>>
File: apu-cellphone-banana.jpg (42 KB, 657x527)
42 KB JPG
what if we made an engine togerther?
>>
>>108853422
it would suck ass
>>
File: apu-pondering.png (1.39 MB, 1024x908)
1.39 MB PNG
>>108853611
but we are the sharpest minds on the internet !
>>
angle schizo here.
I got order independent transparency kind of working using Pixel Local Storage (it works, just I don't know why my clear color gets overwritten right now), but the directX backend seems to run way slower than vulkan (and this is just with 2 layers, technically 4, due to float depth).
Also vulkan and DirectX seem to only support 8 total PLS layers (on my 1660 ti), so the max for me would be 4 transparent layers (5 if I use half floats for depth), not great but I'm really happy with the results from just 2 layers (BUT I have a strong feeling that putting transparent objects / effects around a body of water would immediately break the draw order).
But 8 pls limit is also annoying because I was going to try out rbga16, I still could in theory, but with only 2 layers... (and the minimum the extension supports is 4 layers, which is probably on mobile). I was genuinely thinking I would get more than that, like 200 layers, since I was thinking desktop GPU's don't have tiled memory, I hope this is not a hard coded limit for webgl (I probably could get 200 layers with desktop GL techniques like 64bit atomics).
Also renderdoc can't do shader debugging for the PLS shader in vulkan... (it works in dx11 but I get less info than vulkan).
Pixel storages is neat, I was thinking about using the negative of the depth as a flag for adding a new separate blend effect.
Also I'm not interested in trying to make realistic transparency, since normal over blending is not the same as transparent glass, it's more similar to see-through cloth. But this blog brought up a cool transmittance transparency effect which I don't see any code examples of.
https://osor.io/OIT
And if someone wants to know how Angle is implemented on every backend, this is how (but in 2024 they removed GL_EXT_shader_pixel_local_storage for mobile tiled gpu's because it's slow / but I wouldn't use it anyways since I want vulkan, not GL es):
https://issues.angleproject.org/issues/40096838
>>
>>108853648
Based, that's actually interesting.
I have a feeling I could have saved myself a lot of headache by implementing custom blending using this feature instead of brute forcing math for all possible blendings for several days in search of the least artifact ridden solution.
>>
>>108853648
Draw your transparent objects. At each top edge, either of the triangle or of the screen, exchange the buffer's old value with the triangle_and_draw_index + 1. If the old value was not zero, scan for zero in a second buffer, going upwards, and put it there. Colliding edges should be fairly rare. You can imagine your transparency draw as a wireframe mesh to get an idea of when collisions would happen.
Next, you can, in parallel, scan down from the top of the image, each thread holding a stack of raster info. It needs to calculate & store:
>the triangle's draw call & triangle index
>how long until the triangle starts (in case a collision pushed it up)
>how tall the slice of the triangle is
>z and delta-z (crossing triangles will not be a problem with this technique)
>whatever your fragment shader inputs would have been if it were a regular fragment shader
Only one triangle will be inserted into the stack per pixel; the others may need to re-order, and multiple triangles may end.
You would need to carefully handle the depth buffer; a transparent triangle might start & end behind something opaque. It must not be consulted until the paint pass.

Hazards:
>it taking too long to find a hole
>running off the edge of the screen
>degenerate meshes
>lots of small transparent triangles far away
>standing directly in front of a stack of 100 triangles
>looking at a sky-scraper on-edge
Would dz need some division by w / PS1 texture perspective correction thingie? Not sure how that works.
>>
>>108849078
My engine will have raytraced audio, because audio is as important as visuals.
>>
just used my profiler and used AI to tell me what some of the logs meant and how to fix said slow functions. my engine performance went 5x (it was dogshit before)

kind of crazy this would have taken me, a novice, 5x more hours with stackoverflow and google, i kneel.

im a beginner btw. thoughts? this humbled me because i realized making a good engine pre 2022 would have been extreme for me, but now with AI, i am suddenly good enough
>>
>>108856703
you arent good enough
>>
>>108856713

in regards to what. my game is pretty far along. I dont think i would have the skills to do this pre-ai.

i only started using Ai as a debug tool and for optimizations, and it cleaned up all my noob mistakes. instead of finally making a good engine onmy 3rd try, i am just amending my first attempt. kind of crazy.
>>
nobody cares what your code looks like but they care about what your graphics look like
>>
I can watch like 3 YT videos then I get a 2 hour IP ban for using an ad blocker. I can't dev like this.
>>
>>108857170
is watching YT videos deving?
>>
I've done it...I've finally done it! HOORAY!!!
>>
>>108858426
The system is a live-object model with no class definitions: every entity is a concrete, active object. You create an object by writing it directly just as physical objects don’t require class templates. Every pair of parentheses denotes an object, and objects may nest arbitrarily, so a program is essentially a nested expression like (object (object (object ...))). The syntax is terse and assembly-like by design; it’s not meant for casual reading but as a structural description. The whole program behaves like an organism composed of smaller organisms (cells or subprograms). The entire real program is intended to be read and manipulated through a visual live node graph.
>>
>>108858865
it's also essentially a game engine or can be turned into one easily.
>>
>>108858865
You invented Lisp? congrats
>>
>>108858974
No Lisp isn’t a pure object language. It’s closer to Self/Smalltalk than to Lisp: I borrowed recursion from Lisp but placed it inside a pure-object paradigm. By contrast, Lisp is primarily a function system and is largely agnostic or incoherent about objects. This is essentially Self/Smalltalk, but done right.
>>
If you're writing code in any traditional way: stop. It's over.
>>
>>108858999
I'm also planning on writing a game engine once the base system is done on top of it. thus the relevancy here.
but it's probably going to be slow, since it's my first time writing something like this and it's gonna be a tree-walking interpreter.
>>
>>108859039
I write code with my feet. It's the RMS way.
>>
>>108858999
cool story bro
>>
ok /g/ is too retarded for this.
I'm gonna announce my OS/Programming language elsewhere. what was I thinking shilling it here?
>>
>>108859221
Nobody likes lisp. Make a proof of concept I only care about SPEED so C++ is it for me until I die.
>ok /g/ is too retarded
This is true, though.
>>
>>108859241
Bro, speed isn't everything.
abstraction > speed
imagine coding in assembly, that will give you the most speed but with shit abstraction.
>>
>>108859258
This is game engine development. Speed is everything. I already use Wren for my scripting.
>>
>>108859221
>>108859258
You have literally never programmed anything complex or valuable in your life
>>
>>108859294
Can you stop shit posting here?
and...
I'm trying ok? it's not easy with this brain I have to work with mmkay?
try being in my shoes and doing anything
>>
>>108859327
Perhaps you should start with something that isn't fucking retarded
>>
>>108859350
What's "retarded" about this?
>>
I don't know what is or isn't retarded but nobody wants or is asking for yet another scripting language. It's why there's zero interest. We have a damn near infinite well of scripting languages.
>>
>>108859380
BRO, it's not a fucking "scripting" language
there is nothing like it on the market.
we don't need C++/Rust clones either.
first of all, it's not just a language, it's a complete system. you can use it to do anything, the closest analogue is Smalltalk.
second, it's basically a self-reproducing meta-programming system. so sort of like Lisp but with objects instantiated without classes.
THERE IS NOTHING LIKE IT OUT THERE,
it's not fucking Lua. Lua is a scripting language.
it's not something you shove in your engine like fucking Lua or even Lisp. it's something you write your engine with.
>>
>>108859436
It's not anything because you haven't made it
>>
>>108859436
>it's something you write your engine with.
Cool. Can I use Vulkan/OpenGL with your language yet? If so what's the general performance like compared to C++/Rust? Until you can provide the answers that I want I simply don't care like most people won't care. I'm not saying you shouldn't make it I'm just saying I don't care until I can actually use it and see actual metrics.
>>
For saving/loading 3D Minecraft chunks what format do I use?
>>
>>108860146
XML
>>
>>108860146
rle encoding
>>
A swat team is currently outside anon's house to help him debug water spread.
>>
Tips for someone who wants to do 3DCG?
>>
>>108862666
learn blender
>>>/3/
>>
I can support about 4 square kilometers of terrain now before my tools start shitting themselves, technically more if I break it up into chunks but I'll never utilize that amount of area anyways so meh
>>
How do you make it make sense that directly outside of the imperial capital there are swarms of low level monsters to kill?
>>
>>108865316
Yeah I've never been to Washington, DC either.
>>
File: IMG_20260516_221343.jpg (2.83 MB, 4032x3024)
2.83 MB JPG
why can't devs into controls???
a game should:
>Detect every single input device the OS detects (more than 200 buttons and 100 analog axis)
>allow simultaneous use of multiple input devices (ie: moving with the thumbstick on a gamepad and aiming with the mouse. starfield doesn't allow this)
>allow total remapping of every action and analog axis
>allow mapping combination inputs (ie: A+S to do some shit or 2xW to run)
>have analog actions wherever possible (leaning left/right, boosting, crouching, movement...etc)
>detection and mapping of 2 or 3 mice separately (user may have a trackball and a normal mouse and may want to assign different things to each of them)
>>
>>108865867
>have analog actions wherever possible (leaning left/right, boosting, crouching, movement...etc)
That sounds like a lot of work for shit nobody would ever use.
>detection and mapping of 2 or 3 mice separately (user may have a trackball an a normal mouse and may want to assign different things to each of them)
This is limited by the OS unfortunately. Too bad, would be neat to have a split screen fps with 2 player mouse look.

The others should be done though I agree. And usually are done on non shit games.

Your keyboard is gay btw.
>>
Why don't memory types have a size attribute? Isn't the max volume of a memory type of a memory heap limited? Like if you have VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT for a particular memory heap, it's possible only a part of it is actually device local? I don't know how any of this works.
>>
>>108865867
>This is limited by the OS unfortunately
couldn't it be done by reading raw input from the device?
>>
>>108865867
You forgot
>should be able to set dead zone and mouse sensitivity on every single stick/analog trigger/mouse independently
>>
>>108866736
I guess this is possible after all, huh. One should never assume.
https://github.com/alastaira/MultiMouse
>>
>>108859258
>abstraction > speed

Not for games it doesn't.
>>
>>108867126
For games it ESPECIALLY does. The harder something is to make, the more you benefit from "abstracting" because it makes you more likely to actually finish it instead of posting in /g/.

The key is to know what needs to be fast and what doesn't, to use tools that allow you to optimize when necessary, and program in a way that doesn't makes it easy to optimize later. It's also important to know if you're really benefiting from "abstractions", some things feel better but don't actually make your life any easier.
>>
>>108859258
>>108867191
You are fucking retarded, stop spreading retarded ideas.
>>
>>108867231
Where's your game?
>>
>>108867252
Where's yours? You're making claims here, so back them up, retard.
>>
>>108867259
I'm talking to /gedg/ where the majority has your worldview and nobody has a game.
>>
Imagine thinking there's some binary choice between "abstractions" and "performance"
>>
>>108867357
You're right. C++ does a good job at this.
>>
>>108867321
>no game posted
>>
>want to make some custom hotkeys in blender
>every single key and key combination is already taken
>>
Chuddy's brief foray into Rust has ended with reverting back to C. I don't have the time or patience to master the language, and will be using SDL3 anyways, so there's no point. I was comparing half edge data structure implementations with deepseek, and unsafe rust's syntax is absolutely horrid. Logic errors will be the most difficult part of the implementation, not memory errors, so Rust won't help me there. Plus I can just use sanitizers
>>
File: file.png (16 KB, 587x231)
16 KB PNG
>>108870412
>Le rust game engine
Pretty funny. There's a FOSS Rust game engine in works called Bevy and I found out recently it's using webGPU renderer. That'd be cool except it's using the Rust version of webGPU instead of the superior C++ version, and it's so far behind three.js it's not even funny.

Unironically you'd be better off using three.js than bevy. WebGPU is doing all the lifting anyways but three.js is way more mature with tons of plugins and has like a bazillion examples of things to work off of all over the web. There's a guy adding in meta humans to three.js right now and the three.js twitter just posted this.
>>
Should I do the Panda3D thing or no
>>
File: file.png (177 KB, 1583x1001)
177 KB PNG
Working with shader is always a pain for me, specially because I'm not a 3D artist. Very hard to get the assets to work the way I want without knowing how to properly use Blender.
>>
>>108870483
three.js never stops blowing my mind
>>
>>108870648
You should see some of the projects that came out this week.

Some guy has been vibe coding a Meta humans and got a shit ton done this week. The hair, skin, face, body all looks fine. He's currently working on the clothes.
https://vibe-stack.github.io/vibe-human/

Another guy has been working on this Pro Water thing
https://x.com/dangreenheck/status/2056853273978589700


I said a few years ago that Three.js would rapidly explode as soon as webGPU and TSL came out due to the way three.js is the perfect vibecoding engine and webGPU is a safe and sandboxed renderer, and I was right. Everything is starting to come together.
>>
me? I just manually write down the location of each vertex in a txt file
>>
>>108870749
I'm homeless and a rapist.
>>
I used to think creating an engine was a meme. But here I am getting closer and closer to needing to create gui component creation tools within my engine. Kinda cool.
>>
You can do anything with geometry nodes.
>>
File: Reise Wagon Merkur GT.jpg (872 KB, 2560x1440)
872 KB JPG
>>108848278
ROLLER is now officially completely busy-wait free. I have refactored basically everything to callbacks/state machines. Release builds can use as little as 9% in top. As compared to always being over 100% no matter what even on a static page like it as-written when everything was while(1) everywhere. It is now ripe for porting to wasm and ios/android. My laptop doesn't even turn on a fan anymore when running this, before the fans would kick on to max.

And not to worry, the game still plays exactly the same as it always did. Luckily the one thing that was already on a callback was all the control input/physics, a 36Hz timer from the sound card. That's still on an SDL timer as before.
>>
>>108859069
RMS hasn't written code since before you were born.
>>
>>108870749
This but I write them directly as constants in my source with ASCII diagrams of each face.
>>
>>108870749
I unironically did this in a flash game I made back in the early 2000s, designed like a dozen spaceships that way
>>
>>108870749
I just subdivide a plane and hardcode all the math to calculate the z coordinate for each model.
>>
Making an MMORPG zone is harder than it seems... And before you ask, no, I'm not making an MMORPG.
>>
>>108872097
we talking world of warcraft or we talking ragnarok online
>>
>>108870624
Wow, looks great, you giving zelda a run for its money! You better design it well!, coding gives you autismo brain
>>
>>108851461
Bait
>>
Why is indexed drawing faster than strip drawing?
>>
>>108870624
visuals are dope
>>
>>108872988
way less vertex data because you can share vertices between triangles
>>
File: 1768745097539677.png (1.05 MB, 1200x960)
1.05 MB PNG
>>
guess i'll take the odin pil--
>Odin needs the MSVC compiler and windows SDK from the “Desktop development with C++” component.
never mind
>>
It's all coming together.

>>108873065
Doesn't strip drawing use less data?
>>
File: maxresdefault.jpg (306 KB, 1280x720)
306 KB JPG
how come I have never heard of this thing before? it looks awesome.
https://www.youtube.com/watch?v=brJHWbeMl74



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.