Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

  • Days Won


Hodgman last won the day on August 25

Hodgman had the most liked content!

Community Reputation

52659 Excellent

About Hodgman

  • Rank
    Moderator - APIs & Tools

Personal Information

  • Website
  • Role
    Game Designer
    Technical Artist
    Technical Director
  • Interests


  • Twitter
  • Github

Recent Profile Visitors

102795 profile views
  1. Hodgman

    C++ 3 quick ways to calculate the square root in c++

    Have you benchmarked these approximate functions vs the actual hardware sqrt/rsqrt instructions on modern CPUs? I was under the impression that these tricks were amazing in the 90's, but aren't that useful any more?
  2. Hodgman

    Do you see potential in blockchain games?

    That's not how proof of stake / dpos works -- From a high level view, it doesn't massively change the way that transactions are added to the chain from the typical POW systems (the "miner" is just chosen differently). i.e. Typically your dev team only runs test nodes on a private test network so that you've got full authority to pull fake money out of thin air for testing purposes. The actual decentralized blockchain network has it's own nodes that can each take on the responsibility of processing transactions (POW = a miner solves a hash puzzle, POS = a miner wagers money that their transaction validation is correct - and anyone who can show their validation was fraudulent can claim that wager). If any of those nodes fails and drops out of the network, other nodes can take on the responsibility for them... With DPOS there's a smaller number of "elected" nodes that can fill these roles rather than it being a free-for-all, but those elected nodes are still interchangeable in the case of failure, and don't have to be affiliated with any particular app. The assets belong to a wallet. You can prove that you're the owner of a wallet by signing something (anything) with that wallet's private key. To "log in" to a game using a wallet as your ID, the game sends you a random string as a challenge, you sign it using your private key and send it back, then the game can check whether your response is legit by using that wallet's public key. If your network allows one user to perform hard forks unilaterally, on demand... then it may as well be a centralized system under that user's control. Yeah for the items to have an effect in your game you need logic for it. e.g. you can piggyback off a popular game by implementing support for that game's items to do something in your game. However, you can display an inventory list, show marketplace listings (auction house, etc) without coding specific support for each game/item.
  3. Hodgman

    Do you see potential in blockchain games?

    We're using Phantasma chain for out game. Like other PoS networks, their economy is based on 'staking' your coins (basically locking them up for a period of time) and this is used instead of computationally expensive mining. As such, the network is a lot cheaper to run, and the amount of transactions you can perform per second is relative to the amount of coins that you hold. If you hold enough coins, your transactions are basically free. You can also either set things up so users have to pay for their own transactions, or so the dapp developer covers the transaction costs. Storage for smart contract state is also tied to your staked coins. If you buy and stake enough tokens (a one time cost) you get a certain amount of permanent storage within the network (which is only erased if you unstake your coins). One of the reasons this hasn't taken off IMHO is that these are mostly pro-consumer things, whereas maintaining tight control is better for a big game corporation that wants to maximize profits... As such, I think you'll see smaller games forging the path here before you see Call of Duty, etc using distributed economies. As for more pros/cons - you can make the game license itself an NFT, so players can resell their digital games (as is your right in the EU). As for cons though... Asking users to protect a private key is scary, as users make mistakes. If they disclose their private key to hackers, all their stuff can be stolen and this theft can't be undone. This means you're unable to provide any customer service here... On the plus side, being unable to provide customer service means you don't have to provide customer service 😅 To avoid the whole private key security issue, you may actually want to develop a secure server that uses traditional passwords and 2FA and stores private keys (in a HW module that prevents their theft) on behalf of users for a better UX... We had a big discussion about this in the discord this week 😁 If your game is deterministic, you can include a replay file of a realtime (non blockchain) game session as part of a transaction, and a smart contract could validate that this replay file is legitimate before allowing the results from that gameplay session to be committed to the chain. That allows your game-state to exist as a distributed, secure database, but also for non-blockchain real-time game servers to handle all the fine grained logic, and to have fewer, large transactions. You can also have this replay verification step be performed "off chain" and then get the results of that determination into the smart contract via use of an "Oracle node" in the network. As for monetizing - instead of representing game items as NFTs, you can also store them in some internal format within a smart contract instead, which prevents players trading them. You can then charge players a "withdrawal fee" to remove the item from the smart contract and convert it into an NFT (allowing the player to trade it). If you're doing 2FA, that's probably also a good point to place a security check to prevent theft 😁 Alternatively,.some networks allow an NFT to be marked as non-tradable, and you could charge a fee in your game when players want to convert it into a tradable NFT. You could use either of these to also gain some income on 2nd hand sales if you were representing your game itself as an NFT.
  4. Yeah you set it up in basically the same was as in D3D11 -- except in 11 it's called an "Input Layout" and in 9 it's called the "Vertex Declaration". What does your Vertex Declaration / array of D3DVERTEXELEMENT9's look like?
  5. Hodgman

    Bare bones AAA team

    It's an actual thing -- the category of indie games that cost $1M, approaching AAA style content, but with indie teams (as opposed to the indie teams that are closer to hobbyists). https://medium.com/@morganjaffit/indipocalypse-or-the-birth-of-triple-i-eba64292cd7a https://www.gamesindustry.biz/articles/2018-05-02-an-era-of-triple-i-development-is-almost-here 2 people for 10 years / 10 people for 2 years / 20 man-years is more likely a triple-I game, not a AAA game.
  6. Hodgman

    Bare bones AAA team

    That's a triple-I team, not a triple-A team
  7. Yeah on highly tesellated meshes it's usually not too noticeable, but on low poly meshes with realistic lighting models, it can produce horrible artefacts... The most common "solution" I've seen is to simply bias the N dot L / N dot V calculations so that, say -0.1 becomes 0.0, shifting the horizon slightly further ...beyond the horizon? Another solution is to blend from the smooth normal to the per-triangle flat normal at grazing angles. Some recent related work (not the geometry issue, but same issue from normal maps): https://blogs.unity3d.com/2017/10/02/microfacet-based-normal-mapping-for-robust-monte-carlo-path-tracing/ Also, yes, this seems like it should be a fundamental and well known problem in computer graphics, but I'm not sure what keywords to use when searching for solutions either 🥺 I guess under systems like REYES, it wasn't a problem because every triangle was flat shaded (and meshes tesellated enough that you couldn't notice)...
  8. Hodgman

    What makes a game an "indie" game?

    The word you're looking for there is hobby project. Anyone who's aiming to actually make money, is running a business. And anyone who's running a business has to put a value on their own time... $100 doesn't get you one day's worth of work, let alone a whole game... Indie games can easily have budgets of anywhere from $10k to $1M. That doesn't necessarily mean that they actually spend that much money -- but the "free labor" that the founders have put in could easily be worth such sums. Also it's normal to have to hire contractors to do the development tasks that the founders aren't good at. For example, on of the first famous "indie games" in this recent usage of the word is Braid, which cost about USD $200k in actual spending (not including the hidden costs of Jon Blow's own time!). No one argues that Braid isn't an indie game. 🙄 ...really? One of the downsides of punching above your weight (putting out something that looks close to the AAA quality level) is that people will treat you like a AAA company. People will expect updates that take 100 man-months to produce, every month. People will expect bugs fixed yesterday. People will expect customer service One good example of this is Wander, which is a simple exploration MMO made by a tiny, tiny little indie team on a shoestring budget... but, because they had nice CryEngine graphics, the public's expectations were much higher than what you'd expect from one programmer. So when it had hilarious bugs at launch, it quickly became a meme of "the worst game" instead of people having the patience to wait for bugfixes No, that's what the people who try to define the "indie genre" tend to expect. But a genre of games and a style of development are two different things (and the people who try to define the "indie genre" are wasting their time)... An indie developer is someone who develops games independently (not beholden to external stakeholders).
  9. Hodgman

    My main complaint with OOP

    Yeah - its basically "here are these tools that we call OOP" but not "here's why you should and shouldn't use them in different situations". OOP makes for a horrible mess if you just use all its tools all the time with no guidance
  10. Hodgman

    My main complaint with OOP

    That's (ab)using OOP tools, but breaking OOD rules, so it's "OOP".... That approach is famously identified as C++ OOP best practice in 1992 (or in the Effective C++ 3rd edition from 2005: "Item 23: Prefer non-member non-friend functions to member functions."). Free functions can improve encapsulation and are perfectly valid in OOP designs.
  11. The normal open source candidates: www.theora.org/ https://ffmpeg.org/about.html https://www.webmproject.org/code/ New idea - use a simple implementation of a very old codec: https://phoboslab.org/log/2019/06/pl-mpeg-single-file-library This one is great for small videos that you would use in your game world, because the frames remain compressed on the GPU after you decode them from the video stream: https://github.com/BinomialLLC/basis_universal/blob/master/README.md
  12. How many events are sitting in a queue at a time? Unless you're dealing with tens of thousands of entries in the queue, I'd probably just default to using an array and quicksort or a radix sort (e.g. std::vector and std::sort in C++) -- inserting at the end of the array and then sorting into the appropriate order before you remove items.
  13. Hodgman

    How do you make Windows 10 barely usable?

    wtf was installed on here to begin with? None of that is normal...
  14. Most of them deal with large binary files pretty well... except for the DVCS systems like Git. Git doesn't cope with large files because every client stores the entire history, and because LFS (the hack to fix that issue) is build around an irreparably slow architecture on Windows. My company has a single SVN repo containing every asset (mostly PNG and DAE files) and every built EXE file since 2012 -- about 20GB when the current version checked out on a client computer (plus 60GB for the .svn folder, WTF?!), but amazingly disk usage on the server is only about 26GB to store the full history because it apparently does manage to compress diffs of these files pretty well In my experience in the industry, Git, SVN and Perforce at the most common that I've seen. @linus_e are you just looking for a Git alternative, or that plus a service provider that hosts repositories for you on the internet?
  • Advertisement

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!