1. Past hour
2. ## Modern rendering process

There are couple-few nice SIGGRAPH courses covered the topic in some sort of degrees, for example: Physically Based Shading at Disney Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering Practical Multilayered Materials in Call of Duty: Infinite Warfare
3. ## R&D Any thoughts on the problem of silhouette normals?

So, in real life, incoming dot normal at the silhouette is always 0. With smooth shaded meshes, it never is, not naturally, not outside of contrived situations. (Not with flat shaded meshes either, I guess.) And incoming dot normal is one of the bedrocks of CG. Probably the equal of 4x4 matrix multiplication. Problems with silhouette normals show up in Fresnel, in diffuse lighting, in environment mapping.... everywhere. But I can't really find anybody talking about it. (Maybe I'm not Googling the right terms.) Obviously, the problem decreases as poly count goes up, eventually reaching a point where it's dwarfed by other silhouette problems (like translucency or micro-occlusion) that CG doesn't handle well either. But, if I'm reasoning correctly, normal maps don't improve the problem-- they're as likely to exacerbate it as improve it, and the exacerbations are, aesthetically speaking, probably worse than the improvements are better. I've tried playing with crude fixes-- basically, rotating normals toward incoming by a percentage, or of course clamping incoming dot normal (like we all have to do) to prevent it from bending behind the mesh. Nothing I've tried looks good. I suppose the best option might be to rotate normals to perpendicular to incoming at the silhouette and then interpolate to the nearest inflection point of something like screen space depth to preserve curvature, but the math for how to do that is beyond me, and I'm not sure it would look any better. Or maybe, instead, somehow, adjust the drawn silhouette to match the silhouette defined by incoming dot normal? Not even sure how that would work, not if the normal was pointing away from incoming. I don't know-- is this a solvable problem? Has anyone tried other stuff and given up, pursued anything that was promising but too expensive, anything like that? Are there any papers I'm missing? It's really surprising to me that I can't find anyone else talking about this. (Apologies if I chose the wrong subforum for this. I considered art forums, but I felt that people frequenting the programming forums would have more to say on the subject.)
4. ## Introduction to Octrees

Wouldn't using spheres instead of squares cause gaps? I also think your child volumes should never overlap each other. The child volumes could become parents to even smaller volumes, so if two child volumes are allowed to overlap each other, then when you search a tree for a unique object, you'll get multiple hits and then you'd have to do intersection handling against itself. It's been a few years since I wrote this code, but I think I had some logic in there which terminated the octant subdivision if an object was the only object contained within the octant. This helps you avoid having really deep trees if you have a sparse set of small objects in your world. Imagine what your octree should look like if you have a 1000m cube and five 1cm pebbles scattered at random. You want to minimize the depth of your tree so that you don't drill 100 layers down into your tree to find a pebble. If you wanted to do collision with thousands of gravel particles, I think you'd eventually also reach a minimum bounding volume size, where continuing unlimited subdivision costs more memory than the CPU time it saves -- so there's also going to be a case by case basis for optimization to be made to balance memory consumption against CPU processing time.
5. ## What practically annoys you on a regular basis in programming languages?

Sorry, but I'm not discussing best practices of C++ and you simply stated that all use of this should be implicit, which is not the requested feature of Python developers. I tried to explain why explicit this would be a bad design in a language that heavily uses templates, because then you would need to be explicit about template members as well for consistency. Template arguments are compile-time variables by the mathematical definition of having multiple possible values, even if they never reach the final binary.
6. Today

8. ## Object rotation problem.

That isn't very useful information in isolation because it could be referring to conceptual or multiplication order, and if it's multiplication order the meaning depends on whether row or column vectors are being used. Plus, the order of course depends on what results you're looking for. So I think we'd probably need to see the tutorial itself to comment meaningfully on that. I'm not sure what some of the variable names mean, so I'm not sure how well I can follow your code. Does your camera only rotate and not translate? (I ask because it kind of looks like you're building a view matrix using rotation only.) The model distortion suggests you're doing something incrementally without correction, which your last code snippet suggests is the case. If 'lqrot' is a quaternion, you should normalize it periodically (e.g. once per update) to keep it (near) unit length. Generally speaking, a simple series of transforms for a single model (excluding scale, since you don't seem to be scaling) looks like this: rotate, then translate, then transform by the view transform, then transform by the projection transform. Assuming column vectors, the order would be: projection * view * translation * rotation Obviously some of that might be handled in different places (e.g. in a vertex program), but that's the order conceptually. (If you're using row vectors, the order would be reversed.) I don't know if any of that will help. If not, maybe you could explain what some of the variables are (or rename them and repost the code) so that it's a little easier to follow.
9. ## OpenGL Object rotation problem.

I implemented rotation model for earth. It orbits around me instead it rotates on its center. Some tutorial explains ordering for model is: rotation * translation. I am figuring out but can't find solution yet. It did not work with code because it orbits around me (surface always face me around) instead of rotating its center. prm.dmProj = glm::perspective(cam->getFOV(), double(gl.getWidth()) / double(gl.getHeight()), DIST_NEAR, DIST_FAR); prm.dmView = glm::transpose(glm::toMat4(prm.crot)); // prm.obj.orot = glm::toMat4(body.getRotation(prm.now)); prm.obj.orot = glm::rotate(mat4d_t(1.0), glm::radians(90.0), vec3d_t(0.0, 1.0, 0.0)); prm.dmWorld = prm.dmView * glm::translate(glm::transpose(prm.obj.orot), prm.obj.cpos); prm.mvp = mat4f_t(prm.dmProj * prm.dmWorld); I tried to split dmWorld into dmView and dmModel but it still results the same but earth looks smaller. prm.dmProj = glm::perspective(cam->getFOV(), double(gl.getWidth()) / double(gl.getHeight()), DIST_NEAR, DIST_FAR); prm.dmView = glm::transpose(glm::toMat4(prm.crot)); // prm.obj.orot = glm::toMat4(body.getRotation(prm.now)); prm.obj.orot = glm::rotate(mat4d_t(1.0), glm::radians(90.0), vec3d_t(0.0, 1.0, 0.0)); prm.dmModel = glm::translate(glm::transpose(prm.obj.orot), prm.obj.cpos); prm.mvp = mat4f_t(prm.dmProj * prm.dmView * prm.dmModel); When I tried to rotate full 360 degrees (on Y axis) several times for flat spinning test but... Everything gradually became flat line when rotates away from earth. More spinning = more distorted like flat line effect. After more several times, it became completely horizontal flat line. I tried to rotate on its X axis and it became vertical flat line against earth on right side. I tried barrel roll several times and everything became vertical flat circle (line) on my side of me. Does anyone know any similar problem? // Free travel mode // Update current position and orientation (local reference frame) // Applying angular velocity to rotation quaternion in local space. // // dq/dt = q * w * t/2 // w = (0, x, y, z) // lqrot += lqrot * wv * (dt / 2.0f); lpos -= lqrot * tv * dt; That is my controls from keyboard for angular and travel velocity where prm.crot = lqrot and prm.cpos = lpos, wv = angular velocity and tv = travel velocity (6 DoF controls)
10. ## The beginnings of a solar system

Hello, I am alive. I've actually been split between projects, and I have been a little burnt out, but I am back. I decided to not force the player to only have one colony. So that means we need a solar system. In the original game, there was a squad grid that you could choose where to build colonies, and only on specific slots. However, I wanted something a little more modern. A solar system with a hex grid surrounding the planets, and you could choose from orbit where to pick. I've spent probably two weeks researching rotation and procedural planets. Shout out to Sebastian Lague and his amazing tutorial on Procedural planets on youtube that I used as a base. I couldn't find any tutorials on grids and rotating a planet, so I've had to spend the past two weeks with trial and error to figure this out, but I've finally done it. And it rotates! So if I click on a hex, it spins the planet to face the camera onto the hex I clicked on. Next step: Make the grids transparent, add some UI to pop up when a hex is clicked, have grid coordinates appear for the hexes, and start building a solar system to explore.
11. ## Diligent Engine 2.4.c - Dear Imgui, GLTF2.0, Shadows, API Improvements and more

Yes, it is. Android build system needs some care first, but Vulkan on Android is in plans.
12. ## What practically annoys you on a regular basis in programming languages?

You seem to be confused about the distinction between types and members. "T" in those examples is a typename, not a variable. The operator -> expects an rvalue and an lvalue (both of which are values, not typenames) as its operands, respectively. You might be mistaking it for the operator :: which expects a namespace or typename, and a typename or member, respectively. If you have conflicts between a nearby T and a distant T, that's a design error you've made, not a syntax problem for the language to solve for you. If you need to expose the type T to users of your class, the correct syntax would be something like... template <typename T> class Bar { public: typedef T value_type; value_type val; Bar(T foo); // Mutates 'foo' somehow and stores it in val. }; // ... template<typename X> X use_bar(X reference) { auto transformed = Bar<int>( (int) 7 ); auto minval = std::numeric_limits< decltype(foo)::value_type >::min(); return minval + transformed.val; }
13. ## What is MTO?

Looks like an interesting project. I'd beware of "massive", because massively multiplayer DOES have a meaning. There is a transition point, somewhere between 10,000 and 100,000 concurrent players online, where the infrastructure transforms. Below that number it is something a small team can handle. After that number it is something requiring multiple data centers scattered around the globe, with truly impressive infrastructure that cost a fortune to keep running day to day. Below that transition point is not massive, but instead a regular multiplayer online game. It may be online, it may feel large to the players and developers, but that's not what the first M in "MMO" refers to.
14. Yesterday
15. ## CS Student Looking for Industry Advice

WillBrown, you can get game coding tips in the For Beginners group (see Forums, up top). This forum is for career development advice.
16. ## What do you think of camp wolf creek?

Gameplay pic displayed at world 8 in california and control feaks in Tennessee
17. ## move ship

It seems to be the trend... It's almost like he is living in a scenario like shown in the movie "Groundhog Day" but he doesn't remember what happened prior to the "reset".
18. ## move ship

If you're making a spacewar game, then: Make vector3 variables for position and velocity and initialize them to appropriate starting values any time the ship spawns. When you detect input that applies thrust, say: velocity += shipForwardVector * thrustAcceleration * deltaTime; shipForwardVector can be calculated from a rotation angle by using x = cos(angle), y = sin(angle), z = 0 You may want to clamp velocity to a maximum length. To do this, check (velocity dot velocity) > (max speed squared) and if true, set velocity = velocity * max speed / velocity.Length; If you want your velocity to slow down automatically over time, every frame say velocity *= 0.99f; Every frame, say position += velocity; Use position for your glTranslatef instead of any of the hardcoded numbers you have in the glTranslatef line right now. If you don't have vector3 types then look up the long way of writing them and make your own vector multiply, add, length, dot product, etc functions.
19. ## Looking for people! [Unpaid] (at least for now)

Hi I'm a 3d modeler looking to hone my skills, I'm currently attending university for my AA in Game Development and they're teaching me how to 3d model rite now so I'm really looking for a chance to grow my skills, if you have room for a modeler just send me a message here and I'll get back to you.
20. ## move ship

Similar logic to the problem you claimed to solve last year. Which you made several threads about (and claimed to solve again). You've been trying to solve this specific problem (rotate something and have it move the direction it's facing) for more than 6 years. Maybe it's time to find something else to invest your time in.
21. ## How to add skill to a turn based game

I'm wanting to create a hybrid game between turn based and action. I'm looking to create a system where the player has a list of attack or move options on their turn, but I want to add a skill minigame in order to make the game more engaging for non-strategists. I figured some sort of minigame or something. Any ideas are welcome. Thanks in advance!

23. ## move ship

And the question is ... ?
24. ## Getting a team for a game development project

Also looking for a writer to help develop the lore and political and philosophical situations of the world, I'll do the modeling for assets.
25. ## move ship

I got my ship to rotate about arbitrary axis. my next step is to get it to move up and down depending on which way it is facing. I got it to move up and down but not in the way it is facing after it is rotated. void drawShip() { glPushMatrix(); glColor3f(1.0f, 0.0f, 0.0f); glLoadIdentity(); glTranslatef(50.0f, 0.0f+thrust, 0.0f); glRotatef(shipAngle, 0.0f, 0.0f, 1.0f); glBegin(GL_LINE_LOOP); glVertex3f(0.0f, 0.0f, 0.0f); glVertex3f(-5.0f, -5.0f, 0.0f); glVertex3f(0.0f, 10.0f, 0.0f); glVertex3f(5.0f, -5.0f, 0.0f); glEnd(); glPopMatrix(); }
26. ## 3D RayCasting with Mode7 alignment

Hi there! I have one issue for now. I'm creating a RayCasting application, and for my floor and ceiling I'm trying to use Mode7 for rendering (I think this is easier to understand). but, I cant align the RayCasting walls with the mode7 floor. I use a rotate matrix to make the rotation of floor. Do you know what a need to think in the implementation to fix that? Or do you know if there is some tutorial explaining about it? Thanks!!! (Check the image below for understand) Here is my mode7 code: function mode7() { let _x = 0; let _y = 0; let z = 0; let sin = Math.sin(degreeToRadians(data.player.angle)); let cos = Math.cos(degreeToRadians(data.player.angle)); for(let y = data.projection.halfHeight; y < data.projection.height; y++) { for(let x = 0; x < data.projection.width; x++) { _x = ((data.projection.width - x) * cos) - (x * sin); _y = ((data.projection.width - x) * sin) + (x * cos); _x /= z; _y /= z; if(_y < 0) _y *= -1; if(_x < 0) _x *= -1; _y *= 8.0; _x *= 8.0; _y %= data.floorTextures[0].height; _x %= data.floorTextures[0].width; screenContext.fillStyle = data.floorTextures[0].data[Math.floor(_x) + Math.floor(_y) * data.floorTextures[0].width]; screenContext.fillRect(x, y, 1, 1); } z += 1; } }

28. ## CS Student Looking for Industry Advice

Thanks! I'll give it a read.
29. ## CS Student Looking for Industry Advice

I wrote this to answer this exact question. I call it "FAQ 3." And here is FAQ 27.
30. ## Review my AI idea for a FF7-like RPG

Hello Lorenzo Gatti, thank you for your input I've explored minmax tree explorations in depth ( bad pun intented ) and came to the conclusion that my game parameters were too complex to get anything usable from it. Even with a simple heuristic (HP), the cost of saving/loading game state was huge, the cost of computing actions was also too big, and the fact that we have 8 units on the battlefield and random elements everywhere (requiring chance node or similar approach)... all that makes for a tree search that even with many simplifications (that would lead to issue later on) were not going to work. This is why I reverted to what I'm describing in my post. In the end, the idea is to plan a sequence of moves (skill + target) that will maximize the chance of victory. There is no movement at all, this is why I ruled planners out. Most examples I've seen of them where very hight level tactical based or movement based or both. You are however correct that my proposed AI do not plan well at all. It should be decent to find the best move NOW and the best few moves to string together if necessary but planning for multiple moves (especially the ones from the player team ) is not included. It should however be enough to have some kind of simple coordination between the enemy untis as when they are evaluating a buff, they will select the best situation if it enables a better move or combo for their teamate. This is far from perfect but it's a start.
31. ## Starting a team for an old-school shooter using the Doom3 engine

Hi, I am working as c++ programmer, however I am very new in a gamedev. If you are looking even beginners in game creation I would like to join to the project.
32. ## Review my AI idea for a FF7-like RPG

I'm not an expert of this kind of game, but I'd expect the rules to be less flat than a simple race of dealing damage and healing damage. You mention a few "wrinkles" like action timers and a nasty bonus when a unit dies, and other plausible ones include defenses to avoid being hit and reduce damage, conditional bonuses (e.g. attack types vs. different targets), additional resource types (e.g. "magic points" that can be spent to use magic or drained away), restrictions to actions (e.g. stunning the opponent, throwing a heavy magnet to disable the opponent's steel sword), This kind of tactical landscape requires planning, although in probabilistic form: playing well should involve setting up a good combination of defenses, buffs and adverse conditions for the opponent, and maintaining or developing it, before and between using the most damaging attacks (as opposed to starting with a good move and repeating it until victorious or bored). You mention strategic principles that disguise planning (what is the situation going to be in the future?) as choosing actions smartly (what should I do right now?): coordinating units means planning the moves of all units in the team together, which is clearly strictly better than pretending other units are doing nothing looking for combos and exploiting flaws mean looking for a good final state when the combo is done or the flaw is exploited: not even special cases of pursuing an objective over the course of many moves. in the same vein, not falling into traps is only an extreme, obvious instance of not doing measurably bad moves focus on the right targets means that disabled and defeated enemies are a good thing: it should be implicit I'd frame this AI as, more or less, minimax exploration of the game tree, very deep, with cheap heuristic or in many cases exact rules to exclude bad moves very aggressively, and cheap heuristic functions to evaluate states (total team hit points would be a good starting point).

34. ## DX11 Old CRT Radar scope emulation

Hi guys Looking for resources on emulating the illumination and after glow of CRT oscilloscope displays, like on these old radar scopes. So far my google searches aren't returning anything useful. Any suggestions?
35. ## Looking for people to discuss progress/problems of our respective projects

By now a handful of people have contacted me and we founded a discord server on which we do exactly what was described https://discord.gg/5WMtygw

37. ## What is MTO?

MTO is the name of a project that i am working on since a few weeks, its just a describing name for the project. It means "Massive Trader Online". you might think: Oh noes, another MMO as first project, yes thats maybe right. But i am not creating an 3d Action MMO, its just a game about traveling a 2d pixel world with a 2d pixel char and transport goods from A to B to make money. I am from Germany, and we Germans love trading and economic Games (maybe you know about games like Patrician Series, Die Fugger, Serf City, Anno Series or Guild Series). The World consists of 2d Tiles, i want it to feel like moving on a "overworld" map in old RPGs. Below are some current screenshots. the Tile are not the best since im not a Pixel artist.
38. ## Making an arcade racer like CTR

I remember thinking it was the most awesome thing to be able to get the cars to fill up their turbo boost by drifting. *edited* I like the ramps you've got laid out along the course, particularly the one that stays elevated for a while and ends with the jump. I hope you decide to put some fun detail in the crashing. I'm not sure if I'm remembering correctly, but I think the cars in CTR smooshed up when they crashed. It's playing out nicely in the brain.
39. ## CS Student Looking for Industry Advice

I've entertained creating my own website, now I have ample reason to do so. Thanks for the advice. I'll check out your book and site!
40. ## Need Feedback on Portfolio?

I'd make the title area and the contributions labels links as well. If you're looking for visual changes, the labels for what you used has color changing backgrounds and change the mouse cursor, yet do nothing. I thought they were links. You've got an overuse of fonts, colors, and visual styles that screams of amateur design, but since you're applying as a programmer it doesn't hurt TOO badly, and it's better than the opposite problem of a flat text page.
41. ## Kung Fu Jesus

This looks pretty cool. I like the buff gopher with the hammer.
42. ## CS Student Looking for Industry Advice

For the entry level, build some simple games on your own. Very small completed games are better than major projects that are incomplete. Building your own games and posting them on your own web site shows potential employers that you have strong interest, and it shows that you can do the job. It isn't strictly necessary for programmers to build a portfolio, many people are hired without them. It allows you to explore the field on your own so you can verify yourself if you fit in the industry, and it lets employers see a few small projects that show what you can do as a beginner. Feel free to use tools. Unreal and Unity are both free for this type of work, and they greatly simplify your work. And finally, make sure you know C++. Many schools have dropped it from their programs, but it remains the core language for systems-level work.
43. ## Need Feedback on Portfolio?

I'm wondering if the buttons to go to each game's page is obvious enough. Should I create a piece of text that reads "Click the image below to learn more", or something like that?
44. ## Nightfall - DevBlog #1

New DevBlog is live!
45. ## Need Feedback on Portfolio?

The site is visually busy. I certainly wouldn't call you back if you were applying for a job as a graphics designer. It tells me enough relevant information, and would help if the interviewer actually opens it up before the interview. Few will do that.
46. ## CS Student Looking for Industry Advice

Thanks for the advice. I'm familiar with C++. And what do you mean by "close to the metal"?
47. ## CS Student Looking for Industry Advice

A start would be to learn c++ and create a demo game. Any game. It has to be close to the metal and it has to run fast. Show that you can write software in the language that is typically used in major games and that you can complete a project.
48. ## CS Student Looking for Industry Advice

Hello friends, Computer Science student here, working on completing his bachelors within the next year. I'm interested in game development, and this seems to be a great place to hang out and learn from you all. I'll spare you my life story, but coding games would be my dream job. I'd like to take the first steps toward breaking into the industry, but I'm unsure of the best way to do so. Any advice?

50. ## Looking for a 2D Artist to partner up.

Hi there for first time readers! Just to let everyone know, the: * Pixel Artist position is still available. We are looking for a 2d 32bit pixel. For our top down 2d, rpg, scoller. Above is a very very short excerpt of the beginning story. It's very mysterious all game throwing in: Serious matters, exciting gameplay, difficult battles, puzzling scenarios, strategic plans, and of course a heartfelt story that twists and turns at every corner! Themes: * Suburb....small town....rural area. * City * Lake * Forest * City #2 Very Modern * A lot of indoor modern skyscaper settings Characters: * 7 Main / Secondary characters * AI: Friend / Foe ect.. All are welcome from beginner to expert. This is unpaid until profits are made from end product. When so, it will be a "revenue share." If your interested feel free to contact me below or in a pm. Thanks! Ryan

52. ## Diligent Engine 2.4.c - Dear Imgui, GLTF2.0, Shadows, API Improvements and more

Is Vulkan on Android in the future roadmap?
53. ## I want to be a character in a video game!

• ### Game Developer Survey

We are looking for qualified game developers to participate in a 10-minute online survey. Qualified participants will be offered a \$15 incentive for your time and insights. Click here to start!

• ## Unity with AR Foundation Object Tracking

• ### For Beginners

Public Group  ·  1 member

• ### Unity Developers

Open Group  ·  1 member

• ### GameDev Challenges

Open Group  ·  86 members

1. 1
JoeJ
12
2. 2
3. 3
4. 4
5. 5