Senior Moderators
  • Content count

  • Joined

  • Last visited

Community Reputation

18432 Excellent

About swiftcoder

  • Rank
    Moderator - Game Programming

Personal Information


  • Twitter
  • Github
  • Steam

Recent Profile Visitors

97419 profile views
  1. Making Weapons For Games

    Any 3D modelling software can be used. Blender is a popular free option. The specifics will vary by the rendering software in use, but in general metallic materials have low surface roughness, and high reflectivity. You should be able to find tutorials for whatever software you choose.
  2. World of Shinobi

    Do you have a license from Sega to use their IP? If not, I strongly suggest you find a new name for your game. (correction: Hodgman points out this is about trademarks, not copyright)
  3. Random Number Generator

    Also worth mentioning, C++ developers aren't stuck with rand() these days. The standard library has some nifty alternatives.
  4. Looking for advice on training a older colleague.

    I've worked with engineers like this a few times. One survived for a year by typing up step-by-step instructions for every task they had to perform (up to and including how to make a git commit), and stapling them to the cubicle walls. The other made it about that long by bouncing around different managers. Both were "managed out" in the end. Sometimes people were just mis-hired (technical interviews are an imperfect science), and correcting that mistake can be the only option. It sounds like your in situation the company is unwilling to fire the individual in question. As unfortunate as it may be, your best move may be to seek new employment...
  5. Favourite cocktails?

    I'm at the same stage of my day, and it's only 4:30 in the afternoon here...
  6. At what time do you sleep and wake up?

    I imagine there's going to be a pretty clear breakdown by age/stage-of-life. When I was in college and for a few years thereafter I used to stay up all hours and sleep in late. These days it's in bed by 10:30-11pm, and up-and-at-em by 6-6:30am.
  7. MMO development (Help)

    Along these lines, before you spend a single cent... write a business plan. You need to make sure you are aware of all the costs you may incur, and figure out how long your cash-in-hand will last at the projected burn rate. Pre-plan your exit for when cash-in-hand is low (i.e. before you are in debt). Will you need cash to cover refunds to paying players when you are forced to shut the servers down? Etc. Eskil's Love is a pretty good example. He initially paid for the servers by selling monthly subscriptions to the beta (I think it was around $5/month), which was only possible because he already had quite a bit of publicity and a loyal following willing to fork up the cash. When he decided that Love wasn't a viable commercial venture, he opened up the server (so that anyone could run their own for free).
  8. Having done this for years myself, I strongly recommend that you buy something excessively light/portable for school (say, a Chromebook, or if you feel like splurging, a 12" MacBook). Then buy/build a cheap gaming desktop that you don't have to carry around. The lightweight laptop is fine for coding or running Blender et al, and you have the desktop for playing games or running Unreal/Unity. You really don't want to be lugging a 17" desktop-replacement to school every day. And even "light" gaming laptops (such as Alienware's 13" model) aren't really all that light.
  9. Favourite cocktails?

    I grew up in the tropics, as a result, I enjoy a good rum. In the US of A, the pinnacle of rum-based drinks would be the New Orlean's Hurricane. Light rum, dark rum, and 151 proof rum. It's the kind of drink that knocks your socks off.
  10. Sp4ceRat has a couple of simple terrain engines floating around in easy to digest form. The source is also up on github. They are worth a look.
  11. Leaderboards Without a server?

    For this kind of thing it's worth looking at "serverless" solutions with on-demand pricing. For example, via AWS (where I happen to work, BTW, but this isn't an official recommendation) you could setup a Lambda to handle the request from the device, and use that to update the database. That gives you the same client<->database isolation that a server does, but unlike a server, you'd only be billed for actual invocations of the Lambda (and there's a decent number of free invocations for new AWS accounts). You should also look at Google's Firebase which offers the same general functionality under the name "Cloud Functions".
  12. I'm curious *why* you think it is useful to implement this just to elide the strlen() invocation, when your compiler already optimises away strlen() on string constants? Observe the following C++ program: #include <cstdio> #include <cstring> class IndirectLen { public: IndirectLen(const char *s) : l(strlen(s)) {} const long l; }; int main() { const char *name = "foo"; printf("%ld\n", IndirectLen(name).l); return 0; } And observe the generated assembly when Clang compiles it: .section __TEXT,__text,regular,pure_instructions .macosx_version_min 10, 12 .globl _main .p2align 4, 0x90 _main: ## @main .cfi_startproc ## BB#0: pushq %rbp Ltmp0: .cfi_def_cfa_offset 16 Ltmp1: .cfi_offset %rbp, -16 movq %rsp, %rbp Ltmp2: .cfi_def_cfa_register %rbp leaq L_.str.1(%rip), %rdi movl $3, %esi xorl %eax, %eax callq _printf xorl %eax, %eax popq %rbp retq .cfi_endproc .section __TEXT,__cstring,cstring_literals L_.str.1: ## @.str.1 .asciz "%ld\n" .subsections_via_symbols The compiler was smart enough to not only replace strlen() with a constant, but to elide the entire containing class...
  13. Experience with Photon Engine?

    I've never used Photon personally, but I watched a couple of other teams use it in a 48-hour game jam they sponsored a year or two ago. Multiple teams were able to get characters running around in a shared world on the first day, so it definitely can get the job done.
  14. Congratulations, you have reinvented the copying garbage collector. It's going to be ridiculously expensive to run it every frame as you propose - you've already burnt your entire memory bandwidth just of garbage collection, leaving nothing for the actual game. This might make sense if the number of deleted objects every frame vastly outnumbered the living objects, but I'm hard put to imagine a scenario where that would be true. How many objects in your game *actually* are created/deleted in a single frame? Many simulations are designed such that zero allocations/deallocations take place on a frame-by-frame basis. i.e. by preallocating pools of objects when the level loads, you can potentially avoid ever performing an allocation during the level.
  15. Worth Going Back to School in Mid-30s?

    CS degrees have remarkably little to do with working as a software developer. Provided you have strong programming skills, and pick up the CS basics on your own (the various containers, algorithms, big-O complexity analysis), the CS degree is just a way to make sure your resume stays in the stack (rather than ending up in the shredder). Personal contacts, a strong portfolio... those should accomplish the same end (and possibly considerably more).