Jump to content
  • Advertisement

Promit

Senior Moderator
  • Content count

    15768
  • Joined

  • Last visited

  • Days Won

    1

Promit last won the day on July 10

Promit had the most liked content!

Community Reputation

13322 Excellent

5 Followers

About Promit

  • Rank
    Moderator - Graphics and GPU Programming

Personal Information

Social

  • Twitter
    promit_roy
  • Github
    Promit

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Any chance I can push you towards C#? It's still fully UWP capable, you can still use DirectX, but it will be dramatically easier to move into from a Java background.
  2. It all depends. GLUT is ancient and irrelevant, but several other foundational libraries are perfectly viable as long as they're open source. The real issue nowadays is that graphics APIs are changing, platforms are coming and going, and professional studios need to be buffered against all of those changes. A math library needs to be flexibly ported to different CPU architectures with different SIMD instruction sets. Windowing libraries need to be expandable to handle platforms that may not even be publicly announced. You can't very well have MS come to you for an Xbox 4 demo and not be able to adapt to the platform. For those reasons, these core libraries can act as very short term gains, but in the long view it's more beneficial to control the underpinnings yourself.
  3. Promit

    Assembly language?

    I have to add some caveats in here. True, nobody builds games in assembly. But there are certainly uses for it. It's still common to write SIMD routines in assembly, especially newer instruction sets where the compiler intrinsic support is either not available or just doesn't work that well. PS3 SPUs were frequently coded in assembly. And debugging often involves going over the assembly code being emitted and run, in order to understand what's going on. Performance optimization also frequently requires analysis of the compiler output to fully achieve the desired results. We're not writing in assembly or even reading it on a regular basis, but you better believe that it comes up plenty in games.
  4. Promit

    Defining AAA

    It's unclear to me which days were the "romantic" ones, but I did want to try and put some numbers on budgets over the years. Luckily, some guy at Kotaku did the legwork already: https://kotaku.com/how-much-does-it-cost-to-make-a-big-video-game-1501413649. I should mention that some of these budget numbers are direct budget and don't count things like the effort put into building a publisher-shared engine, and often times the marketing budgets can be quite large. There's never been any doubt that budgets have inflated massively over the course of the game industry's evolution. The definition I was given around 2007 for a AAA title was simply, a game expected to sell more than a million copies. (Successful indie games might sell those kinds of numbers, but that was not usually the expectation.) If the term ever meant anything about the innovation of said games, that went out the door at least 20 years ago.
  5. cracks knuckles Alright, let's talk seriously about what it means to roll your own. For context, I've worked at Microsoft and had access to the Windows source code. I've worked at NVIDIA and had access to the D3D driver source code. I'm software architect of a group which has a completely C++ tech stack which is essentially custom, save a few helper libraries that are part of it. I say this only to provide some context for where I'm coming from - rolling your own is a very familiar world to me. I'm going to ignore Casey/HMH from here on out because I don't care enough about him to say more on that subject. That's great. Do you have time to do both? More on that in a moment. I'm a little concerned that you don't actually know what you are trying to accomplish here. In general, there are two ways to come at building games. You can start with something very high level and learn all about how to structure the high level structures of a game, filling in low level knowledge over time. Or you can start very low level with the individual pieces, eventually figuring out how to connect them into a working whole. Both are perfectly valid approaches, but it's very difficult to accomplish both missions simultaneously. The people we're talking about in this thread have many years of professional experience under their belts, and are usually doing this in their spare time too. You can choose to roll your own tech, as we did, and it can pay dividends long term. But that choice will kick your actual game back by years, especially if you're still learning the fundamentals as you do it. Witness was mentioned above - that game took eight years and an ultimate team of 15 people to create. So it becomes necessary to decide what your priorities are, because we're no longer talking about short term gratification. You've demurred on that choice so far, though I like @MonterMan's comment on integrating outside libraries, particularly open source ones. I don't like the concept that some stick to of not having dependencies, because that's not reality. You always have dependencies, you're just choosing not to acknowledge them. The OS and platform SDK, the graphics API and drivers, the C++ runtime, etc. I just include the dependencies in the source tree whenever possible, rather than doing package manager stuff. At the end of the day, you're going to have to decide that you're writing some part of the system yourself, and some part just already exists there for you and functions in its own mysterious ways. There are many places to draw that line, but you should have a good understanding of why you placed it where you did and what the goals are. No matter what you choose, some things are going to be closer and some things are going to be farther away. It will take a long time to have both the low level and high level under your belt - and I have to mention that very few professional game developers ever do that. Most inhabit just one section of that world, relying on the rest of the team to build a complete product.
  6. I don't know how much more there is to say without digging into the series and cherry picking all the stuff I hate, and I got bored of that long ago. It's simply not representative of anything beyond a fanciful imagined time where people totally built stuff up from nothing. It's like a game-sized programming test rather than focusing on things that are actually productive. I just think it's a mistake to think that this is what a "real game programmer" does.
  7. No, it's not. I'm sorry to all the fans but HMH is an entertainment show with no relevance to reality. On the ground game development is a totally different ballgame, even in the indie world. By all means watch Casey if you want, but don't mistake it for a productive use of time or an educational product. It is not, and Casey's not qualified to teach anybody anything. This is the key point, because it really tends to discourage the "roll your own" path. I have a lot of problems with Unity and we don't (and couldn't) use it for our own work. But you need to be really careful about whether you're misusing a tool, using the wrong tool, or doing something which doesn't have good tools available. For starters, I'd tend to push you back to C#/.NET. It's a powerful and productive environment that you're clearly familiar with, and nothing in your stated needs or desires suggests a change to C++ is called for or helpful. Assuming that Unity is indeed the wrong tool for what you want, it's worth looking at some of the 2D libraries available for C# already. https://duality.adamslair.net/ http://flatredball.com/ https://waveengine.net/ Unfortunately I can't vouch for these selections and there are likely many other choices out there. But I feel like you've decided you don't like Unity and then gone much, much too far in the opposite direction.
  8. Promit

    What do you think about JAI

    I googled Jai to see what kind of write-ups are currently available about it. First hit is a third party GitHub page with: Are you kidding me? Why are we even talking about this when there's no spec, no compiler, nothing except some unofficial write-ups fabricated from a freaking YouTube series? At least most of the other languages du jour are functioning pieces of technology I can poke and prod. This is insanity. So to answer the OP's question, I think it's fine if you're enjoying JB's videos and talks about this, but to actually discuss it seriously doesn't even begin to make sense to me.
  9. Looks like the Solo under-performance is having some real fallout: IMO this is probably the correct outcome (and I didn't realize they were actually planning to make all these extra movies). All of them feel every bit as cynical and cash-grabby as Solo, created not so much to add anything material as to just drag more audience dollars into the theater on name recognition alone.
  10. Ohhh, you mean cynical in being produced as fan service. I gotcha.
  11. Strange, I would describe TLJ as easily the most cynical of the Disney era movies. A film where the protagonists all either fail outright or actively worsen the Rebels' situation through their actions? That sees our long-missing hero die? TLJ offers up nothing in hopes or accomplishments.
  12. Setting aside the episodes for the moment - As far as Star Wars goes... I'm just so damn bored at this point. It's instructive to look at the Marvel crew next door, who are pushing out even more movies and have been for some time with great success. If you consider Avengers analogous to the SW Episodes, they're not actually the best of the MCA despite being the motivating force behind them. Each movie revolves around its own characters and does its own thing, much like Solo. Except, MCA is wildly successful and Solo seems pointless. Why is that? It comes down to the reason for any given movie to be made, in my view. The MCA movies all function together, building a story in pieces that are related and connected and serve to move an overarching plot and universe forward. The SW movies, on the other hand, have so far been looking backwards and add nothing to the Episodes or the rest of the universe. Rogue One teetered on the edge and was mostly saved by being a movie that uniquely rests on names and faces we don't recognize. Solo feels cynical in comparison - it's a cheap cash-in on a central character but adds nothing to his identity and nothing to the universe of Star Wars as a whole. Give me films that fill in actual gaps in the story, or serve to better explain what's happening now, and they'd at least have my attention. But I'm not going to go see a movie because "well it's Star Wars and it's decent". Lucas, for all his faults, was a universe builder and everything he did was part of a unified global theme. In contrast I'm not sure what the hell Disney-Lucas is trying to accomplish, where it's going, or who is important in that universe. I'm not even sure they know where the Episodes are going.
  13. Promit

    How to use DirectX Control Panel

    I don't think any of these options work since Windows 8 came out. You might look into debugging through PIX or Visual Studio's graphics debugger instead.
  14. Promit

    Why are enums broken

    The problem with this approach is that it doesn't create a type or type alias that you can use to cue in what values are actually expected for a given parameter or variable. If I have a function, I can say that the type of one argument is Thing and then i know that Thing::FOO and Thing::BAR are valid options. Can't do that if Thing is a namespace. I get around this with some magic macros that create a struct named Thing with an int cast, and create the enum values inside that struct.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!