• ### Member Statistics

• Total Members
244578
• Most Online
6110

Joined

GDNet+ Basic

70

414

Moderator

69

14741

Member

48

1618

Moderator

42

11196

## Popular Content

Showing content with the highest reputation since 03/20/18 in all areas

1. 9 points

## Is graphics programming still relevant in the game industry?

At an, 'indie' level, probably not, but otherwise, yes. Unity is almost a framework for making engines, rather than a finished engine. There's a lot of room for customising the engine to fit your needs. They're actually making this easier in 2018 by making the core of the renderer even more scriptable. UE4 is less flexible, but AAA teams would still have internal engine programmers tweaking their version of it! No two games that I've worked on have ever used the exact same rendering code, even when using the same engine. This is especially true for console games where the hardware is so underpowered and the expectations are so high. Even when I was working at a small /sub-AAA console developer who pumped out ~\$1M games annually, we had multiple graphics programmers on the team, plus a tech artist also doing graphics programming work sometimes
2. 9 points

3. 7 points

## Programming Interview questions

Oh, please, please, whatever you do, don't ask people about their weaknesses, unless what you are looking for is the ability to manufacture bullshit. If someone asked me about my weaknesses, I would either walk out of the interview or tell them that my biggest weakness is not having any tolerance for ridiculous questions like that one. Really, what do people expect to learn from such a question?
4. 6 points

## Marching Cubes and Dual Contouring Tutorial

I've put together some tutorials that explain the ideas behind Marching Cubes and Dual Contouring. Maybe it'll be useful to some of the forum-goers. Marching Cubes 2d Marching Cubes 3d Dual Contouring Each tutorial comes with sample code in Python. Let me know what you think. This is the first time I've written a tutorial, but may do more if people want them.
5. 6 points

I sent Dave a gift on behalf of GameDev.net. We've known him a long time, and while I didn't get a chance to sync up with Dave at GDC this year, I had a chance to speak to him at length at the Austin Game Conference last year and get to know him better. Dave loves game AI, and he loves the community surrounding it. He does a tremendous job running the GDC AI Summit and in Austin talked with me about how he organizes it. His passion is deep and inspiring. This is the latest at this point from his family: We're all hoping @IADaveMark recovers fully.
6. 5 points

## Structuring C++ code (Visual Studio)

I use CMake to generate my VS projects with filter layouts that match my disk folder layouts. I was quite surprised when I started a C# project and realized that VS would do this automatically there! Surely there's some hidden option to turn in on for C++ projects (/ off for C# projects)?
7. 5 points

## Why is this an "access violation"?

Definitely a null pointer access. The fact that you accessed pic in the previous line doesn't guarantee that it wasn't null. I suggest posting more code!
8. 5 points

## Art Update

Hey guys, got a lot to show today- we've been very busy! 4/6/18 4/5/18 by Blakkfox by Blakkfox 4/4/18 created several tiles by Blakkfox by Blakkfox by Blakkfox by Blakkfox 4/3/18 finished two large lake maps by Blakkfox by Blakkfox finished five small tent maps by Blakkfox by Blakkfox by Blakkfox by Blakkfox 4/2/18 three hadou plague busts by Blakkfox refined plagues' plot 3/30/18 moar monsters by liquid_pencil & Blakkfox by liquid_pencil 3/29/18 by Blakkfox working on exterior maps of Darkfall Lake pixel monsters by liquid_pencil by liquid_pencil & Blakkfox by liquid_pencil & Blakkfox by liquid_pencil & Blakkfox by liquid_pencil & Blakkfox by liquid_pencil & Blakkfox by liquid_pencil by liquid_pencil by liquid_pencil by liquid_pencil by liquid_pencil -created fort interior by Blakkfox 3/28/18 worked on GUI for battle stats by liquid_pencil worked on map paths by Blakkfox & Catalyst 3/27/18 worked on adjusting plague busts to be more expressive, have 10 finished ones working on 5 more by Blakkfox 3/23/18 worked on several emotion plague busts by Blakkfox by Blakkfox 3/22/18 worked on Plague bust default by Blakkfox 3/21/18 created Fusion article working on Plague bust 3/18/18 created Daksu the Destroyer article fleshed out Asrea and Saukvi a little more Revision of past plot created Eve character art
9. 5 points

## Is graphics programming still relevant in the game industry?

It's true that game engines handle most of the heavy lifting out there and aid you immensely as far as the graphics pipeline is concerned, but even if you do build a game on Unity or Unreal those usually don't get you all of the way there, especially when your game demands some more specialized advanced behaviors. Say you want to implement a seeing through walls mechanic. What this guy did here is nothing short of impressive. His solution was built on Unity but required a lot of ability as far as the graphics are concerned. What if you wanted to implement a wall jumping mechanic? Or a gravity on the walls mechanic? There are tons of cool things you can do to your game that OOTB free game engines don't have implementations for. I'm working on a racing game where the track twists and corkscrews, and I needed a mechanic that would apply gravity to only the track. Unity's built in physics weren't really that useful for me so I had to use some good ol' linear algebra to get things working right. </self-promotion> The point is no matter how much heavy lifting these engines do, there's always a ton of ways to get creative on top of them, and it's going to making things way easier for you if you come in equipped with some of that mathematical/graphical knowledge. The thing is a lot of big publishers still have dedicated teams working on in house engines that have their own rendering pipelines and physics engines. For example most Nintendo games are made on game engines that aren't publicly available. Id hasn't released their new engine they used to build Doom. A lot of these in house engines rely on various pieces of middleware from outside though, so they still need talented developers to string them together.
10. 5 points

## Voxel grid traversal algorithm

SVO - it is only necesasry when you literally couldn't fit your 3D texture into memory. The voxelization, building tree, etc. is not that expensive - the traversal is what is much more expensive. Also using properly hardware trilinear filtering ends up in increased memory usage. I could eventually switch to it to show the differences (in memory and performance). And give you here more proper figures - if you want. Actually it's 1.0f / resolution - it's size of voxel cube within 0.0 - 1.0 boundaries (as we're just looking up texture). The sample_diameter is actually maximum from minimum voxel size (in texture space coordinates) and 'cone_ratio * dist' - where dist is distance travelled and cone_ratio is representing apex angle. Sorry for that, here is updated one (my tone mapping parameters are a bit 'overdone' though): This one has disabled MSAA for GI and Reflection cone tracing buffers, and enabled MSAA for deferred shading (hence different numbers), this doesn't matter for voxelization though - it took ~4ms here. I enabled voxelization of whole scene every frame. So why was there 0 before? Simply because I voxelize only 'when required'. This is especially useful in editor! I can post more detailed analysis on that if you are interested in that part (how long actual voxelization takes, how long separate miplevel generation take - for specific resolutions, etc.), as I've written this into profiling back when I worked on SVO implementation - so it's just about switching some defines and writing it out.
11. 4 points

12. 4 points

## What's your story: How and why did you start learning how to make games?

Ah yes, DarkBASIC, that was my starting point too for programming. I dropped it pretty quickly though once Unity became free. Well like many I absolutely loved and still love gaming. I'm a lot younger than most on here, so my experiences are pretty different. This story starts when I was 10/11 years old. My mom, a professor in an IT related field, saw my interest and saw this software known as Alice, though back then it was still Alice 2. To an 10/11 year old kid who was interested in how games are made, this was the most amazing thing ever. Dragging and dropping commands to manipulate a 3d world was amazing. I made several small games with it, but soon reached the limits of its capability. So in middle school, I moved on to try learning programming. I learned a language known as DarkBASIC, and tried building stuff with it. I didn't get far (DarkBASIC just isn't that great honestly), and moved on to learning Java, etc. At that time, Unity was made free, so I built several small world explorer type things. I learned some very basic modeling with a software known as 3D Canvas. Now this is where my story diverges a bit from others here: I started to lose interest in pure game dev and became interested in things like AI and machine learning, ultimately prompting me to pursue a degree in Computer Science. Game dev would sit on the back burner for some time. The past two years did see a bit of a revival in a very related field: 3d art. In particular, I became much more interested in just pure 3d art. So nowadays I spend more time on these sorts of things: (The above is a work in progress btw) I've attached some other pieces, of which the last two are 1 day mini pieces. But this is what I do on the side. My job now is in software development, about 1 year out of college. I'm still figuring out career directions (which include graphics, machine learning/AI, or something entirely different), so let's see where I go. I've toyed with several game ideas and still use Unity for making cinematics, but I haven't actually worked on a game as of yet. Maybe I will once more potentially. Still a huge gamer of course!
13. 4 points

## GameDev Challenges - Moving to Groups!

I'm moving GameDev Challenges to the new Groups feature, which I'm rolling out as a beta as I work out the kinks figure out how best to integrate it with the community. (so many ideas!) I've already created a GameDev Challenges Group. You can also access groups through the Browse -> Groups menu item. Join the group and check out the group announcement! I'll be posting the next challenge there within the week. Thanks for making the GameDev Challenges a fun and successful part of the community. Let's make it even better with the new Groups feature.
14. 4 points

## Printing % to a string? I need MANY % to get the percent symbol

QFE. Formatting a format string is a bad bad thing to do. If you include any user input at all, you're opening a gaping hole (imagine a username of "%s"). It's as if you've said to yourself "how can I take one of the most insecure, error-prone, dangerous parts of the language and make it more error-prone, dangerous, and insecure?" Then, of course you come here asking "I've made the most error-prone part of the language more error-prone and now I have an error, can I keep digging until I find my way out?" Modifying format strings that get used elsewhere at some unknown time is implicitly modifying global state as a side-effect of your functions. Instead, make your functions pure and have them returns already-formatted strings, only assembling them into larger strings when you have control and not as a global variable.
15. 4 points

## What is the current way - Technology

Nintendo Switch is the only console that uses mainstream graphics APIs (GL/Vulkan supported). Every other console uses/used a custom API. PS4 has GNM, which is lower level than Vulkan, plus a wrapper around that called GNMX which makes it look a little closer to a D3D11 style API, and then a semi-unofficial wrapper around that to make it look like a GLES style API. Those wrappers are only recommended to get started, with the recommendation to eventually port to raw GNM. Xbone has D3D11.x and D3D12.x which are very similar to their PC counterparts, while also being very different in some key areas. PS3 had GCM, Xb360 had D3D9.x (again, very different to PC), Wii had GX. Everything earlier than that was even more fragmented as the concept of a GPU hadn't solidified yet... An indie dev who shall remain unnamed started a rumour that GL was the fastest API on PC and that it was used by the PS3 years ago, and for some reason many people still regurgitate this as fact... If you're making a cross platform game, you've always needed to have multiple graphics API back-ends. Even if "cross platform" just means Win/Linux/Mac to you and you believe in "OpenGL everywhere" - that's at least 7 different OpenGL implementations that you need to test your code against and almost certainly make code tweaks/fixes for (every manufacturer implements the entirety of GL from scratch, with differing core behaviour, extension support, performance characteristics and shader-code parsing abilities). It's quite likely cheaper to use D3D and Metal rather than doing the extra GL QA work on your Windows/Mac ports! The SDK was rolled into the Windows Platform SDK. The toolkit is the equivalent of the old D3DX library - very useful utilities that most apps will need, but aren't "core" enough to be part of the D3D API itself. "Practical rendering and computation with direct3d 11" is my go-to reference for D3D11
16. 4 points

17. 4 points

## Horizon:zero Dawn Cloud System

Hi, It's been a while since anybody posted here but I thought I would share the fact that I'm presenting more of our cloud work at Eurographics 2018 next Thursday in Delft, The Netherlands. I don't know if any of you are or will be in the area, but it would be a good opportunity to meet and talk clouds. Best, Andrew
18. 4 points

if you discard only 1/255 of the pixel (assuming you mean black == 0.f), then there won't be any performance benefit from discard nor stenciling, as the GPU will dispatch pixel in groups of at least 2x2 (yes, fragments will be processed that are already rejected). Therefor the only speedup you'll get is in cases where there are 2x2 pixel blocks of black pixel, which are also exactly in the 2x2 pixel grid. 1:4Billion Hence, if that is only about performance, go for a discard, it has at least less setup overhead.
19. 4 points

## Web game getting published without permission

I disagree with most of your post, but that doesn't really matter -- I'll only focus on the quoted part. The poster is not asking for a discussion about copyright laws and how they could or should be changed. This is very clearly a "what can I do to prevent this" question. As such, your subjective feelings on the matter don't really matter. If you really do feel strongly about the topic, maybe you could start another thread, but my opinion is that you shouldn't keep on derailing this thread.
20. 4 points

## Programming for consoles for learning purposes?

The skills from one platform can be converted to the other platforms easily. You get a set of different libraries to do things, but it isn't so different. If you're comfortable making games in Windows with DirectX then you can also develop them on the XBox One. The console's OS is a customized version of the OS. If you're comfortable making games on Unix then you can also develop them on the PS4. The console's OS is a customized version of FreeBSD. Game studios know that students and recent graduates don't have experience on that specific hardware. But fortunately for you, the specific hardware is nearly irrelevant. Hardware changes every few years, just like operating systems are constantly changing, and programming languages are constantly changing, and hardware is constantly changing. The languages you use today didn't exist a decade ago. Even though you use versions of Java, JavaScript, Python, C#, and C++, the versions of those languages that you know and use today did not exist a decade ago. The devices will change again, there will be the PS5, the XBoxTwo, and the Switch3D, or whatever follows. Those all change. The thing that doesn't change, the thing which is constant across all operating systems, across all hardware systems, across all programming languages, are the algorithms, theory and data structures. Learn and master those. They will never go out of date. As you gain a solid grasp on the core algorithms and data structures, also spend time making games on whatever system you have available. The game studios already have tools available that let their source code work on the Windows PC, on the Mac, on Linux, on smart phones and tablets, and all the programmer needs to know is the programming language and the theory behind them.
21. 4 points

## Voxel grid traversal algorithm

I'm currently using the one that skips voxels on the way. I've had some attempts on DDA, but the general problem with those is that they ended up being far inferior in performance. I can even share: // P - ray origin position // V - ray direction // cone_ratio - using 1 large cone lead to poor results, multiple ones with some sane ratio looks a lot better // max_dist - maximum acceptable distance for cone to travel (usable for AO F.e.) // step_mult - in case we want "faster" and even less-precise stepping float4 ConeTraceGI(in float3 P, in float3 V, in float cone_ratio, in float max_dist, in float step_mult) { float min_voxel_diameter = resolution.y; float min_voxel_diameter_inv = 1.0 / min_voxel_diameter; float4 accum = 0.f; // push out the starting point to avoid self-intersection float dist = min_voxel_diameter; // Marching! while (dist <= max_dist && accum.a < 1.0f) { // Calculate which level to sample float sample_diameter = max(min_voxel_diameter, cone_ratio * dist); float sample_lod = log2(sample_diameter * min_voxel_diameter_inv); // Step float3 sample_pos = P + V * dist; dist += sample_diameter * step_mult; // Sample from 3D texture (in performance superior to Sparse Voxel Octrees, hence use these) float4 sample_value = voxelData.SampleLevel(shadowSampler, sample_pos, sample_lod); float a = 1.0 - accum.a; accum += sample_value * a; } return accum; } This is the result for such GI (this is in-editor): The performance is also no that bad (considering this is an editor - and we're running full deferred pipeline at 4x MSAA (including 4x MSAA for calculating GI and reflections) ... along with a lot of other things). Overall I'm quite satisfied with my VXGI implementation. Even though I also have support for octree-based version (not 3D texture based one), it ends up being few times slower. To also give you a hint on performance - here is another one with profiler shown:
22. 3 points

## Demo is out !!! leave some criticism.

Ive finally put together this demo. Only one enemy, but I hope you will like it and leave some response. My main goal is inventory system. Grid functions arent my favourite thing, but I will still use them, but first I wanted to show you at least some of my work. Errors will probably appear, Im sorry for that, but the base is good in my opinion. Im NOT an artist, my sprites are bad and I know it, so ignore them now. Here is my work so far --fightSystem for rpg3.zip--
23. 3 points

24. 3 points

## Rail Route - Demo R0.1 Released!

I am happy to announce that we release first demo of Rail Route! We have polished our first prototype of train routing and added a simple tutorial. To make it more a game than a prototype we have included short level where you can try your dispatcher skills. You can download it at our blog: https://railroute.bitrich.info/2018/04/17/demo-r0-1-released/ Or you if don't want download .exe from the internet we prepared Unity WebGL build: https://bitrich-info.github.io/railroute/r01/ Levels in Future Our vision is that the final game will contain a handful of such levels, some longer, some short (puzzle game / unlock scenario). You will be able to compare your performance with the others (global Top 10 list). We are thinking of tools that enable you to create & share own levels, so you will be able to model your home city railways if you want. These levels will be only one game mode, but the primary game play will be something completely else. Something like career mode where you take care of rail network that you will need to built, upgrade, manage and so on. We will write about it soon! Feedback We would like to hear any feedback from the prototype. So feel free to reach us anywhere :-). What's the best score you can reach?
25. 3 points

## Clockwise angle between two Vector3

I think you'd need to make a reference vector that is perpendicular to your navmesh edges, right (a "surface normal")? You could cross product two of your edges on the current cell. If you know they are always in a specific order, that means the cross product of edge[0] and edge[1] should be fairly consistent between cells. If your navmesh is always flat (or nearly flat), the normals of all of your navmesh cells should be close to the same direction ("up"). It may be simpler to just always use "up" in this case to bypass having to compute the cross product of the cell's edges each time you need it. Alternatively if the navmesh never changes, you could at the very least precompute the normal vector of each cell when it is created.
26. 3 points

## What's your story: How and why did you start learning how to make games?

Well I was 6 years on, back in 198t. Then I wrote other games and taught myself how to program with a pen, paper and math grid paper. I was in Africa no access to a computer, just a library card that gave me access to computer magazine and monthly Radio Shack manuals. Eventually through the efforts of an expatriate British English teacher I got my hands on a ZX spectrum, eventually a BBC microcomputer, AMIGA,Archimedes. I released a sprite editor, and a paint program on shareware back in the late 80's on Atari ST. Been doing this as a hobby for years I refuse to be in the industry, and instead been working on network engineering stuff. Currently working with NVDIA developers and CISCO developers and 3rd party company on firmware, firmware and opengl drivers fixing issues with remote graphics on platforms using HP RGS, UGE Openlava on an NVIDIA Grid k2 cards on ciscoc240+ servers.
27. 3 points

## Printing % to a string? I need MANY % to get the percent symbol

You should never use sprintf to begin with, because it has no way of checking if you are writing past the end of the buffer. A valid alternative is snprintf. Then again, you should only use this when you need formatting. When passing the string around, when storing it or when sending it to the drawing function, you should just handle it as a plain string, without doing any formatting. EDIT: Oh, and please use std::string if you are programming in C++. You are much less likely to mess up that way.
28. 3 points

29. 3 points

30. 3 points

## What's your story: How and why did you start learning how to make games?

I think it would have been the summer of 1975 or 1976, my grandfather taught me cribbage and pinochle. I was 7. I haven't spent much time not playing games since then. I am usually playing a game of some kind at any given moment, I'm not really normal when it comes to games. The next summer he recognized how quickly I had advanced with games so that summer he taught me how and why Backgammon was not really a game, it was an abacus because no matter what you roll there is always only one best move, so there is never really any decision to make over the course of an entire game of backgammon. It's a more advanced version of the tic-tac-toe lesson. Tic-tac-toe always ends in a tie, backgammon doesn't actually have any decision making in it other than the doubling cube... which is why it has the doubling cube. My grandfather had a pretty advanced understanding of games and simulations.
31. 3 points

## What's your story: How and why did you start learning how to make games?

You make me wish I started earlier in my life. Well, for me, it's a long bumpy road.. I grew up around Nintendo super Mario, but it never impressed me. I was mostly disinterested in video games, up until Doom. I realized that video games can invoke a lot of emotions. They were art. From there, I experienced Wolfenstein 3D, Out of this World(Another world,) Blackthorne, Bioforge, Little Big Adventure... the list goes on, and on. They inspired me in many ways, and left a significant impact in my life. As well, being dyslexic, a few of these games allowed me to push myself to read, and when voice acting was involved, allowed me to follow along. Video games have always been a special place in my life due to this. So, this sparked my interest in developing video games as I wanted to bring that love that I have to someone else. To keep the inspiration train going, so to speak. Unfortunately, plagued with depression and self-confidence issues, I felt I was too dumb to make a game, and never pursued until I was 18. Found out that I really could not code, wasn't a great artist, or anything... Around the time I joined GameDev.Net. I stayed in the community while floundering from C++, to C#, to python, to C# again, but then gave up on programming. I had hoped to thrive as a writer though. I ended up actually working with someone from IRC #GameDev developing Deadly Dungeons for the android. Seemed to be a modest success. Then a few failed projects after that. I found more frustrations than enjoyment, unfortunately. So I moved on from the game dev, and just kind of did art for a while. Yet, video games keep calling me back. I decided to take up learning Japanese as one of my means to step outside of my mental imposed "I cannot do this because of x" toxic thinking. So, despite my dyslexia, I said I was going to learn japanese and translate this video game. The video game was XZR II(exile.) Took me 4 years, but I translated it, and did a let's play on it. Then moved on to translating the first game of the series (which is still incomplete.) However, I realized I needed a marketable skill. Translating was not teaching me japanese well, and I could not justify the time spending on it. Yet, I wanted to keep doing something game related. Three years ago, I got a job at a financial office. They had programming learning courses in the skillsoft website, and would look at those during slow periods. Suddenly, it all clicked. Programming made sense. Took me 10 years, but it clicked. I picked up python, and wrote a program that simulated grocery shopping, but the computer shopped for the items you told it to collect. I wrote this in a month. That concreted my path at the moment. From there, I made Tic-tac-toe in C# console, pong in Unity, Snake in monogames, and now extending on snake in C#\Monogames. Confirming that I can do this, maybe not as well as others, but that I can. Currently set up to go to college for computer science. Also, I am currently debating learning project management skills, and forming a team to make games I would otherwise not be able to. Time will tell though.
32. 3 points

33. 3 points

## Working on the AI, a coreographic fight.

This week was full work on the AI, which was lacking a bit, to say the least. It is a simple state machine that changes based on the distance to the character (far? jump, close? punch/kick) and its own physical state (falling? stucked? idling? close to edge?). Eventually I managed to make sequence I'm quite proud of: Several silly situations came out of it before I reached that stage: The AI trying hard to punch, only to fall to their death. Finally! It manages to punch me. It's not really hard to terminate the threat. Sometimes it even terminates itself... is the most convoluted way. When your fighting your bro, and a brofist is mandatory. The AI is not prepared to fight flying robots. Ok, that was a decent punch. So it does not get too cocky. If you are interested in Posable Heroes, you can wishlist it on steam.
34. 3 points

It's entirely up to you. Lots of programmers enjoy the tinkering aspect that comes with starting low-level and building up their own set of routines, others like to see results as soon as possible and consider the coding to be more of a means to an end. And then there's the issue of whether you care about learning new skills while you do it, or whether that is just time wasted. My default recommendation is usually "Unity/C#", but if you are comfortable with Java and have had some decent results from LibGDX then you can certainly continue with that. In particular, working with larger engines like Unity (or Unreal, or similar) can often mean a period of readjustment for someone who is already a programmer, while they learn how to adjust their normal method of working into the way that the engine 'wants' you to work. That alone could be a good argument for sticking with LibGDX in the short term, at least while you get used to the fundamentals of game development.
35. 3 points

## 7th of April: That's No Moon..It's an Update!

Hey everybody! Boy, it has been crazy since the last blog post! I've managed to get a coder onto the project and they are doing extremely awesome work. How awesome? Check it out! The first thing you'll notice is that the HUD has changed dramatically. A lot of it is still a work in progress but the layout is how we'd like for it to be in terms of where everything is. Also, 99% actually works now, from the magic bar, the spell selector, the item indicator and the health! (We're just missing the currency) Next is the combat, which we've started working on and most of the player functions are prototyped. Whilst the attack effect does need a little more polish, the player can attack and have the spell they have activated, push out from their fist. The first step to having a fully functioning combat system has been taken! Speaking of combat, the other systems have also been worked on! The player can dash in four directions when the button is held, keeping their direction when the button was held. As well as blocking, which stops them from moving but they can rotate around in a circle to block incoming attacks. This will make for some interesting battles for sure! On the non-combat side of things, we've gotten a few of the puzzle elements started, the first of which is picking up environmental objects! It's still in need of a bit of work, as you can see, but the player can pick up certain objects and throw them, with the impact having different effects depending on what we want them to. On top of that, we have pushing and pulling objects! This is still being worked on at the moment, as the collision detection is a bit buggy but we're making progress! Another aspect that has had work done is the dialogue system. Here, we can see the colored text aspect that we all know and love from Zelda games. We've worked on making a system inside Unity to allow importing of simple .txt files to make writing a lot easier for us down the road! In terms of general movement, we've added in swimming, which will inhibit players from attacking, so watch out for water-dwelling creatures! Whew! That was a lot to unload! Everything is still in need of a lot of work to tidy, debug and make the best we can for all of you to play in the future. Hope you all enjoy the update and I hope to hear from you all on what your thoughts on this is!
36. 3 points

37. 3 points

## Have I taken a useless course?

You say that "you can't be 'just' a designer" - sure you can... for specific values of 'designer'. Saying that "you can't just be an idea guy. So I must take on either programming or art" is a false dichotomy. Here are some of the tasks that a designer might take on in a typical team, in my experience. Many teams will separate this out into multiple roles, so it's not necessary for anyone to have all of these skills, but these are what an actual designer might do, even if they don't get to be the idea guy. Broad character/vehicle/unit/species design 'Grey box' level concept design (artists replace the grey with real assets later) Level design by placing assets, or using a level editor tool Hook up animation assets to characters Write design documents for producers, artists, and programmers Choose input schemes and keybindings Implement character archetypes within an engine Create 'flavour' documentation or narrative to guide feature implementation Plan cutscenes Produce UI mockups for artists Consider UI/UX issues, accessibility and usability, plan a player's flow through the program, etc Perform competitor analysis on related products Create trivial game logic and events in Blueprints or Playmaker (yes! Playmaker!) Write pitch documents for game ideas Prioritise features and sub-features to guide producers and programmers Plan and design game systems (movement, camera control, character progression, encounters, AI) Design and balance game systems (via formulae in spreadsheets, simple scripts, etc) Balance game systems via testing and measuring Write narrative, dialogue, flavour text, or prose, and enter it into the engine Evaluate and refine monetisation approaches Create scripted events Set up quest definitions with objectives, conditions, etc Loads of other things With that out of the way, the other problem you face is that the route to a high-level design position is not generally obtained by being a programmer. For starters, studios often expect to hire designers for less money than they expect to hire programmers, so you'd be looking at a pay cut. Secondly, studios find it harder to recruit programmers than to recruit designers, so they will tend to be reluctant to let you move sideways internally. As such, I would strongly recommend that if your interest is design, to focus directly on being the best designer that you can be. Finally, I'd leave you with a warning to not get too focused on the problem of "bland and boring plots". There has been no shortage of people over the years who, as creators, want to see something deeper from games, but only really evaluate the stuff that is deliberately mass market. There are more interesting works available, just not when one is mostly focused on the obvious works (and, with all due respect, the games you mention are from a fairly narrow section of the field). There are trade-offs to be made when it comes to spending a lot of someone else's money on a AAA project, so if you want to work at that level, you have to be thinking about the mass appeal foremost.
38. 3 points

39. 3 points

## Programming Interview questions

Asking about weaknesses is, in theory, trying to see if the candidate is capable of self-reflection, seeing if they can be humble, and if they can be honest about how their skills are distributed. If an interviewer accepts bullshit as an answer there, then they've not really thought the question through. When we interviewed technical directors, we asked this in a slightly different form: something like "which areas of expertise do you think you'll need to hire for, or research in depth, in order to deliver this project?" Nobody knows everything, and I don't want to hire someone who thinks that they do. When I was last doing mid to senior level programmer interviews, I did have the applicants look over a page or two of our code and asked them to suggest improvements. It wasn't about playing spot the bug but it was about assessing their approach to code quality, and also their approach to communicating with team members.
40. 3 points

## Programming Interview questions

Generally that is easy to test because hopefully the legacy code actually compiles and you can debug through it in some manner. Why do we have 2 singletons? Is the issue that the large things take along time to collate? Are we worried about how they are constructed because you are (Assuming the compiler errors are just typos) calling getInstance in each-others constructors? Are the typos\compiler errors supposed to be tricking me up or apart of the exercise? How did I get to looking at this code? Did I notice something odd? Bug report filed? Randomly browsing? Again, I think this exercise does not help at all. Generally you are working with actual code or responding to some behavior in context.
41. 3 points

42. 3 points

## Devlog #7 - Epic and toxic fight with a boss

Greetings, In this devlog I want to show you how the combat with a boss will look like. You appear in a large room with a weird contraption in the middle of it. This contraption is a boss who attacks you immediately. There are several platforms around, where smaller enemies appear time by time. Also you can find some places with replenishments for health and ammo. You need to move a lot to dodge the boss's ammo and shoot the smaller enemies which chase you. And of course the main action is shooting at the boss which has a lot of health. The video in toxic display mode is here:
43. 3 points

## C++ and SDL loop

You should add a table with cards, and split the problem in four steps: while not done: # Get input from the player, or "no input" if the player doesn't do anything within a short time interval. # Typically interval is somewhere between 1/60th to 1/30th of a second, the animation frame rate. inp = receive_input() # Process any input from the user, and update the cards on the table accordingly. # Note this are only logical game actions, like 'take card', or 'deal' or so. table.process_input(inp) # Cards are animated, so update the position for any card that is flying. table.update_card_positions() # And finally, render the table as it is. table.render() The table is the central data structure that knows where each card is. It can also hold the state of the game. If the game gets complicated, you may want to take that into a new class. The above loop runs at animation frame rate. Input processing obviously doesn't do anything if the user doesn't give a command. Animation moves each card that is not where it should be a little. Rendering then just draws the entire table. Attach an entity to the card (or give the card an index number pointing to the entity to draw). Your blunt "pos += vel" position update may fail (not to mention you update x twice, and y never). As an example, suppose vel =2, pos = 1, dest = 6. Position will update like 1, 3, 5, 7, 9, ... since pos is never dest. Instead, just update to the final destination when the card is "close enough" (less than 'vel' away, for example).
44. 3 points

## Failing to create a Heap for 3D Render Target

Can you tell us the big picture of what you're trying to implement? You could bind your texture as a UAV instead of RTV if you want to be able to write into the whole thing arbitrarily. Btw, as mentioned above, you really should get the debug / validation layer working. Invalid use of the D3D12 API is undefined behaviour and can do nasty things -- e.g. It might work fine on your PC but crash the GPU on someone else's PC. The Validation layer catches the vast majority of mistakes and provides extremely helpful human-readable descriptions of the errors. I would go as far as to say that it is mandatory for development.
45. 3 points

46. 3 points

## Failing to create a Heap for 3D Render Target

Out of memory is a different error code, unless you were asking a size above the DirectX limits. With D3D12, you should run most of the time with the debug layer and solve any issue as soon as possible, it is life saving ! It is as simple as installing the graphic tools ( start menu > optional feature > graphic tools ), then in your application, at the begining, call D3D12GetDebugInterface and enable the layer from the returned interface. If you never did it, even if you are at the hello world triangle stage, chance you have dozens of errors and warning are pretty high. And consider that the layer is not a magical tool and many errors are not catch either !
47. 3 points

## pixels and units in Unity explanation?

Hi. Don't fear, pixels are less important than you think. In truth you only ever need to worry about pixels when they produce less than desired results. No surprize here because it does not exist. There is no defined relationship between pixels and Units. It's up to YOU to decide what relationship they will have. Often it's easy to work with 1:1, 1:10, 1:100. Meaning that 1 Unity unity = a 100 pixels; this should be the default. The above image shows my button at 150 by 50 sprites. However I want each Unit to be 50 pixels large. So how do I set that? Simple. I select the image, then in the inspector I select what Pixel per unit I want. OK. Notice how things got blurry? That is because my game isn't pixel perfect. For most art styles this doesn't matter but let's fix this. The 800 by 600(4:3) ratio you are using has a problem. That is the 3 on the X axis is a odd number. Here we can see it is out by exactly 1/3. Because the computer is limited it can't solve 1/3. To fix this we scale the camera's Orthographic option to a base of 3. 3,6,9,12 etc. The above image shows how the problem is solved by setting the Orthographic to 3. Now My Units, camera and pixels all line up. In short: if one of your axis is a problem then use a power of that axis to correct the size of the camera. This lines everything up.
48. 3 points

## DirectX12 adds a Ray Tracing API

Denoising isn't part of DXR. Those denoising algorithms have been published previously too - AI denoising has been around for a few years, and NV #hyped their version of it last year Read the DXR manual to see the new HW features they're pushing for, not the #hype/#fail articles/videos written by other people to lazy to read the manual. I posted a summary on the first page: There's a lot of HW changes coming to compute-core scheduling, bindless shader programs, compute coroutines and very fine grained indirect dispatching -- all things that renderers based around recursive ray generation system will need to perform well (and without CPU intervention). Offline/film renderers haven't needed these advancements yet because the millisecond-latency issues of CPU based workload scheduling don't affect them. For realtime we're going to need the GPU to be able to feed itself though. Ray-geometry intersections can be defined with HLSL "intersection shaders", so there's no specific HW required for that, but they also define a fixed-function ray-vs-triangle mode, which does allow GPU vendors to bake that into silicon if they like. I don't know if that's worthwhile, but it's worth noting that even after all the advancements in general-purpose GPU compute hardware, every GPU still has fixed-function HW for texture filtering, rasterization, depth-testing and ROPs, so ray intersection may have a place there.
49. 3 points