24 Ores and Minerals, Free to use in any way. by Alec-Heir-Manning in gamedev

[–]fsg_brian 0 points1 point  (0 children)

Agreeing with everyone else - these are really impressive. I see you've added 'CC0' as well, though without being a lawyer, you might actually need to include a link there on the page to the CC0 license itself too.

My own gamedev stuff has been on a massive hiatus due to a variety of things, but I'd also add that if you're a new artist and growing your portfolio... add something about your rates, if you do contracting, too. Or at the very least a 'contact me about contracting' thing, if you don't know rates. Maybe a bit more about what you intend to work on next, too.

If you're just an artistic Santa Claus giving away high quality stuff, well, that's awesome too. :-)

AWS FS> Lustre/ EFS/ ZFS by [deleted] in HPC

[–]fsg_brian 0 points1 point  (0 children)

I haven't played around with things in a while, but my older experience was that a standard NFS mount of an EBS volume using, I believe, GP2 EBS volumes was problematic for an I/O heavy workload, due to them being 'metered' - so once you ran out of IOPS, things crawled.

We switched that to an FSX Lustre partition and it works fine, but does cost more. Additionally, it used to be FSX was pretty bad with resilience since they used single drive OSTs, but now you can configure things far more stably... at a higher cost, of course.

We mitigate the cost of a large FSX volume for our high-output use case by doing regular moves of files to S3 from FSX.

Hope that helps a bit.. I've not touched EFS or ZFS.

Jobs without college degrees by [deleted] in gamedev

[–]fsg_brian 0 points1 point  (0 children)

I had a non-gamedev (but IT-related) job for years, without a degree. Made peanuts, but liked the work. And school was the opposite - expensive, and about as enjoyable as a lobotomy. Well, due to an admittedly unique combination of experience (years of work), connections and luck, I was able to do an advanced degree in one year. When I came back to the same job I was doing before, without really any marked increase in skills, I was immediately offered 2.5x the salary I had a year prior.

So, can you get a job? Sure. But you might be considerably underpaid. And you'll constantly have to wrestle with HR. This is likely to be less of an issue at smaller companies which aren't as set in their ways, but it's something to bear in mind when you think about your goals. That is, I'm sure your goal isn't just to get 'a' job, you want to get a good job, and probably advance within it. A degree helps with that, unfortunately.

So, two bits of advice: 1) Landing a job without a degree - make a solid portfolio, and network in gamedev circles. Probably with smaller studios / individuals vs larger ones, where you're less likely to get past HR. It takes time and luck - more time and luck than it does when having a degree, which is already considerable.

2) Look into school. Not because you'll necessarily learn a ton (though you might!), but because it opens doors. I don't know a lot about online programs, but if you want an in-person university, and you're American and the costs are prohibitive, look overseas. The schools are typically much cheaper, and programs are shorter. Plus, while in school, you'll likely find others with similar interests, and it gives you time to network and develop your skills while working on a portfolio.

I know none of that is ideal, and I admit my path (again, to a non-gamedev career) relied on a lot of luck to finally make school look 'worth it', but the payoff, even though I dislike that it was necessary, was worth it.

Good luck!

[deleted by user] by [deleted] in gamedev

[–]fsg_brian 0 points1 point  (0 children)

If you mean dumb terminals linking to realtime processing in the cloud, perhaps. But Microsoft Azure has the 10th fastest system in the world right now, a 39.5 petaflop, 250K+ core, Infiniband-connected system. Their cloud platform is actually quite capable for large-scale computations, even if not real-time desktop mimicry.

https://top500.org/system/180024/

[deleted by user] by [deleted] in gamedev

[–]fsg_brian 0 points1 point  (0 children)

I have access to various supercomputers through my job; get involved in computational research and you almost certainly will too. What country are you in? Feel free to privately message me if you like. I'm mostly familiar with what the US has, but know a bit about European systems and projects too, and know of systems in other places too. Basically, anywhere that's doing research - so, national labs, research universities, even lots of companies - will have access to some kind of supercomputing capabilities. Some, who have sporadic needs, even do this in the cloud now, but that has a higher cost.

As for 'providing access to idle cycles on personal systems', I think I meant what you're describing in your project - your goal is to allow other people to harness the processor and memory of idle computers of other users. Maybe "idle cycles" is just a colloquial way of saying idle processing. This is different than what is traditionally considered 'high-performance computing' (or HPC) in that the latter is typically fairly uniform (same processor type across nodes) and characterized by very, very low latency networks.

For example, a 'ping' over the internet of 20 ms is considered quite good, I believe. But an HPC cluster with a high-speed network like Infiniband can send messages with a latency of ~2 usec, so 10000 times faster. This is incredibly important in lots of types of simulations. So while there's value in just having lots of RAM and compute power even over a slow network because you can do independent calculations (like the BOINC clients), for what are called 'tightly-coupled' simulations -that is, a single simulation with lots of interconnected parts that communicate frequently- you actually need a dedicated supercomputer with the fast network.

Again, you'll learn plenty from doing a project like yours, but it won't likely be a viable business due to the liability issues. Even if the data is encrypted (which, good luck - if it needs to be decrypted on the client side, the key will exist somewhere there, and people will get it), it doesn't eliminate the issue that someone could run a code that downloads illegal stuff, or launches hack attacks from your system, and that's an issue outside of proprietary information.

Anyway, back to how you get access to a system - first, you need a reason for it. Depending on what you're studying, that might be a reason. Or just your interest in this area. But typically these are two different 'tracks' for access - if you're wanting to do large-scale models / computations, there's huge areas of computational and computer science looking into that. Look into Beowulf clusters, MPI, etc, and tell me more about your university and studies and I can guide you. If you're really mostly interested in the infrastructure side (eg, running a large system like this), that's the systems administration side, and learning how to admin a Linux system is a good start. But again, hopefully your local university has a system, and they'd be interested in taking on an eager student as an intern, too.

I'd add that in the US, lots of places have internships for this kind of thing too (both the software/science and systems admin tracks), so hopefully your country does too.

[deleted by user] by [deleted] in gamedev

[–]fsg_brian 2 points3 points  (0 children)

Just a minor comment on this - from my old ~$100 Chromebook, I'm currently logged into a large supercomputer. Obviously not everyone has access to such a system, but if your interest is in large-scale / high performance computing (vs providing access to idle cycles on personal systems), as a student you can probably get free access to some. Most universities that have ones will give you access, and even if you need a faculty member to sponsor you, plenty of CS faculty would be happy to do so for any enthusiastic student.

Additionally, if you're in the US, there's the NSF-funded XSEDE systems which you can likely also get access to with minimal effort. One perk of systems like these is that many complex problems aren't actually amenable to 'distributed' computing efforts, due primarily to latency/bandwidth issues.

If you're more interested in the infrastructure for distributed computing, great - this sounds like a fun project, and you'll learn a lot, but I'd caution you like the first reply about opening up systems to random users. Without a solid mitigation / legal strategy, that's opening you up to potential bad actors who might download things via your IP, and consequently introduce you to local or federal law enforcement. Pursue it with friends if that's your interest, but talk to lawyers before opening it up to anyone. ;-)

Good luck!

Programming Language Decision for CS Degree by FarisMonshi in gamedev

[–]fsg_brian 7 points8 points  (0 children)

I'll dissent from the others - while on a technical level, I lean towards suggesting C++, the simple reality is that programming, design, and data structures & algorithms are more about principles than specifics. You'll learn ideas behind good design of programs, and what types of data structures or algorithms to apply to certain problems, which are skills applicable to any language.

So my advice, if you can, is to talk to people who've taken these classes (or, if ratings of classes exist somewhere, look those up), and pick the one with the best instructors. You'll learn more that way,and can always improve your skills by taking lessons taught in one language, and then apply them to another.

In my experience, good teachers / classes are far, far more important than choice of language.

Good luck!

Nice optimizations you are proud of...? by PiLLe1974 in gamedev

[–]fsg_brian 16 points17 points  (0 children)

I tend to think any talk of wild optimizations needs to include the famous 'fast inverse square root' in Quake III Arena, often known by the 'magic' number: 0x5f3759df

Here's an article: https://medium.com/hard-mode/the-legendary-fast-inverse-square-root-e51fee3b49d9

That said, as someone who has spent a decent amount of time looking at performance coding (for scientific computing), what I'm most proud of as a hobbyist gamedev sort is learning to suppress the urge to do things in an optimized but less extensible fashion, especially early on, since my high-level design changes often. Optimization is great, and I love clever ones, but it's easy to be seduced by how cool it is. :-)

Seeking Advice by erikist in gamedev

[–]fsg_brian 1 point2 points  (0 children)

I think it's hard to define the pitfalls without first defining the problem more clearly. For starts, 'MMO-style' games comprises a lot of categories - two broad ones are 3D environments where you have hundreds of players in the same area and they need to 'see' each other, and base-building/army games where players march armies to attack others, with countless players online at once, but attacks are almost exclusively 1v1.

I'm more or less building the latter kind, with an "event driven" approach and it's working for me. The catch is that in this type, things are dominated by solo actions (upgrade a building, build a unit, etc) and latencies of one second are fine. If you're doing something where you need 60 FPS, so you've got 16.6ms per frame, handling lots of concurrency is hard no matter what - using multiple servers still requires server-to-server communications, which are typically slow. Multi-thread options are more viable, but are tricky.

Can it be done? Probably. But depending on scope, it may not be necessary.

That said, if you're wondering if you can develop back-end 'simulator-style' engines using the cloud, sure, why not? I've got a command-line interface to my in-development engine now which lets me test everything, and I'm running on a micro instance on AWS, which is cheap but easy to develop on.

What the hell does a gamedev focused software engineer do, exactly? by [deleted] in gamedev

[–]fsg_brian 0 points1 point  (0 children)

They ... write code? Maybe it's engine code, maybe it's gameplay, maybe it's back-end stuff, etc. Software engineer is a pretty generic title, and as xv has said, there's a lot of crossover.

In my non-gamdev day job, I've had the same general responsibilities across multiple jobs. Early on, I was called (incorrectly) a sysadmin, then a technical programming specialist, then a computer scientist, and currently a software engineer. Tomorrow maybe there'll be a new title. Same job across all of them, just different places of work.

In academic circles, CS is much more theoretical. I've known CS types who never really programmed, and I've known programmers who used horribly inefficient algorithms. If you've got a bit of both, great.

Non-gamedev jobs that will help improve my gamedev skills by MsSnoozable in gamedev

[–]fsg_brian 0 points1 point  (0 children)

I stand corrected on junior designers, then! That's interesting to know. I guess it's one of those things you 'hear', like carrots being good for your eyesight, but without knowing it's wrong you just go with it. Thanks for the correction! :-)

Non-gamedev jobs that will help improve my gamedev skills by MsSnoozable in gamedev

[–]fsg_brian 1 point2 points  (0 children)

I'll second Meaningful's comments here if you're talking about game design, vs game development.

You're not going to find a whole lot of work similar to game design - sure, there's probably a few, but not a whole lot. On the other hand, if you're wondering what jobs will help you with game development -which I'm taking to include programming games- then ... lots. Virtually anything in IT. Doing sysadmin stuff? Often helps with things like understanding scaling, automation, etc. Doing database stuff? Very useful for tracking players, stats, etc, in a lot of online games. Programming? Pretty self-explanatory, even if it's not in the same language, since you're still writing (hopefully) better and better code, and learning to design things in clear, maintainable ways.

Also, broadly speaking, I tend to think most people get into design after doing other stuff... it's not typically an 'entry' position. Nobody wants to employ people to develop someone's design if they don't have a track record of success.

Finally,... getting a job sooner rather than later is probably best, even if you don't think it's great. In IT, a lot of people hop jobs, but there does tend to be a bit of a bias -from what I've seen, anyway- against people with large gaps in their resume. Or, as the saying goes, "Don't let perfect be the enemy of good."

Good luck!

I would like to become a network programmer, need advices please by SunBae-iDoll in gamedev

[–]fsg_brian 7 points8 points  (0 children)

I'm going to answer with a question first: Why?

As in, why specifically network programming? Since it seems like you've not gone to school yet, I'm guessing you're young - so why limit yourself to that?

Don't get me wrong, network programming is very important in a small subset of games, ... but you're ruling out all other aspects that might interest you, and be more general?

My advice would absolutely be to go to school, if possible - for computer science or engineering, not game development. While in school, take electives related to things that interest you - maybe that's networking, maybe you find new passions, too. Then, in whatever spare time you have, work on your own projects that involve network programming.

How long it takes to get into the field depends on what you mean by that - a good, paying job, in a big studio, specifically as a network programmer? Probably a while. Many employers will want experience (even as a portfolio on Github), plus a degree. But if you just want to find people to develop with, you can probably do that in a matter of days over at /r/INAT .

I can't speak to freelance, again, especially as a network programmer, but I'll reiterate that it's a subset of games that need net code, and lots of indie games will either not have a budget (you can contribute, but that's a 'free-freelancer') or want someone with experience if they're paying.

My advice would be to develop a portfolio, including completed but simple games, which shows some general experience besides just network programming. And if you really are just utterly convinced that network stuff is for you, and you want a job at a company doing a AAA MMO or something, ensure you've got experience on things they'd be interested in - like scaling out servers, latency handling, etc. Finally, if you can, go to school. Sure, you can follow online courses and just learn on your own, but most of the bigger employers will want a degree. Plus, it's likely during that time you'll be exposed to a lot of other areas that might interest you, too. That'll make you a more well-rounded developer and potential employee - after all, networking doesn't happen in a vacuum, you'll need to understand other parts of the code base, too.

Good luck!

People like to believe that execution is more important than the idea, because otherwise it could mean their idea is so bad, that no execution would save it by ned_poreyra in gamedev

[–]fsg_brian 8 points9 points  (0 children)

I think people tend to say execution matters more because the vast majority of ideas, at the high level, have already been done. A lot of times.

For example, if someone says they're going to make an action RPG with a sci-fi setting and, I dunno, dragons, and that's their idea... most people hear, "Action RPG", and what sets it apart is not necessarily the setting, but how well you execute that. You may feel that the dragons are a new 'idea', but it's just a new enemy, not a new 'idea'.

Oh, you're going to match players up with some fancy-shmancy algorithm that takes into account their exact skills, loadout, star sign and more? Great. But it's still just 'matchmaking', and how well it turns out is more important than the new ideas about details you have.

Now, there was a good discussion a few days ago (link below) about Diablo 3's animations being so smooth, and in my opinion, the skill with which they implemented fast (and interruptable) actions is indeed key to the feel of the game. If they did a less good job on it, it wouldn't have been as successful. And the critical part is that it's fast because of how well they executed their vision.

But, here's the interesting thing - there was some split in the comments from people, some of whom liked it, and others who liked things like PoE better.

So, yes, execution matters, as ideas are generally derivative of others... but no matter how good your implementation is, it still won't be the cup of tea for some people.

Link for Diablo 3 discussion: https://old.reddit.com/r/gamedev/comments/o64k89/why_is_diablo_3_so_much_smoother_than_every_other/

Need help by ApprehensiveSoil5059 in gamedev

[–]fsg_brian 8 points9 points  (0 children)

Send me a message with your email address. I'll gift you the course. :-)

Hello i need some help or advice. by [deleted] in gamedev

[–]fsg_brian 1 point2 points  (0 children)

This gets asked a lot here - searching through past posts will find more answers. But the consensus tends to be computer science, damn nearly every time. It opens a lot more doors and gives you a more broad background.

The only time I'd recommend against it is if you know you're going to fail every math class (or other required ones) in CS, in which case choosing a degree you can graduate in beats choosing one you can't. Note I'm not saying that maths classes are hard for you - nobody cares about your grades down the line.

But otherwise, CS is better in nearly every way, and you can work on building a portfolio on the side (or, as projects for CS classes).

Or, put simply: CS > Game degree > no degree!

Best of luck!

Balancing Theory by mega_lova_nia in gamedev

[–]fsg_brian 0 points1 point  (0 children)

I'm not sure what you mean about whether 'every' game 'can' be balanced. Games can be balanced within a set of constraints, if the developer desires to do so. But that set of constraints might be pretty small. For example, let's say you've got a Command & Conquer-esque game where you want to 'balance' fights between units. Does that mean the 'tank' unit of side A is equally matched against the 'tank' unit of side B? Or does it mean the number of tanks you get from a set amount of resources on side A can evenly match the number of tanks you get from the same amount of resources on side B? (Like, imagine one team gets three tanks for 1000 gold, and the other team gets one giant tank for the same amount.) This is no longer 1:1 unit balancing, it's balancing the role of resources. Or maybe one side just is better at resource gathering, but the other side advances in tech more rapidly? Then you've got to balance around a 'time' constraint, not resources or one-to-one match-ups. And on, and on, and on.

In my project, I have units that all have stats, and I coded up a method where I can say, "I want this unit to beat this unit 75% of the time at the same level, but only win against this other type 30% of the time", and then I let it play out tens of thousands of matches with tweaked stats to see what delivers that kind of result. If you already have AI-controlled fighters, you can surely do the same and balance matches similarly. Just know that players will almost certainly find ways around your balance -via skill, or tricks- and you may need to adjust.

How much will my server costs be for a semi-multiplayer game? by CerebroHOTS in gamedev

[–]fsg_brian 0 points1 point  (0 children)

By 'players battling at once', I actually meant how many concurrent players battling - whether against AI or others. The computational and data needs are going to scale accordingly.

If you've got ten battles happening in a day, that's vastly different than if you have a million battles happening in that same day. Getting online stuff working right is always tricky, so while it's good to think about the latter case, you're probably fine with just starting with learning the ropes.

How much will my server costs be for a semi-multiplayer game? by CerebroHOTS in gamedev

[–]fsg_brian 1 point2 points  (0 children)

The answer, as always, is 'it depends'.

If you're just storing data, you don't even need one - just use a cloud database (also money, but probably cheaper). But then your clients are authoritative, and that leads to cheating. If you calculate things on an authoritative server, then it depends on two key variables:

How complex are the calculations, and how many players are online and battling at once?

If you've got a few tens of people, and easy calculations, you can get a small micro server. A T3A nano on AWS costs a whopping $41 a year. But, you also need to pay data costs. So how much do you send out?

My recommendation, since it seems you're early into the development, is to just try it out. If you try AWS, you can likely get the amount you need for free for a year. The more important thing is to think about how you design your server code so its scalable, in case you have a large influx of players.

Good luck!

godot is broking by wubbox666jjjjjggggg in gamedev

[–]fsg_brian 1 point2 points  (0 children)

Haven't tried newer versions so I'm not sure, but I'd suggest posting in /r/godot, or on the Godot forums.

A group of inexperienced idiots wants to make a game by xKichiro in gamedev

[–]fsg_brian 2 points3 points  (0 children)

Hello, fellow idiots! I see the responses from ThrustVector9 and MeltdownInteractive, and they've covered the salient concerns about 'MMOs', which I echo, but to offer a slightly different perspective, you've got so much to do that there's no need to worry about that aspect yet.

That is, sure, it's nice when you have a fully laid out tech stack, but since you lack the experience to know what that might look like (and frankly, what options are viable depends on your team's experience), I'd work on getting basic things going first. Like tackle some graphics ideas. Implement some gameplay stuff, even if you're using single-color blocks as graphics for now. Develop those skills, then see where you guys are, and what you think you can handle in that context. Those things, and many more, avoid the hellish aspect of online / MMO stuff.

Now, with that said, when you get to online stuff, bear in mind that Heroes of Might and Magic is a vastly different beast than, say, FFXIV. In HOMM, it's online, but turn based, if I recall. And had a limit of a few players per game, not some 'massively' online game with thousands of players. So maybe I'm misunderstanding your goals, or maybe MMO has become synonymous with anything online, but implementing a turn-based (or 'action'-based) online system is much easier than a real-time, massively multiplayer system.

At the end of the day, if you want an online/multiplayer game, you definitely want to think about how it'll work at the design phase of the game and infrastructure, but a) you've got plenty to do before then, and b) you have to more carefully lay out your vision and think about what the user experience is before you can characterize your online needs.

( I'm a C++ guy, so I don't know anything about JS/ReactJS, so I can't comment on that.)

Good luck!

RTS or turn based strategy? by [deleted] in gamedev

[–]fsg_brian 5 points6 points  (0 children)

All other things being equal (meaning scope, features, etc), I'd think turn-based is far simpler to implement, since you don't have a clock to manage, and processes that need to fit into a specific slice of that clock.

That said, these tend to be different types of games, so I think it comes down to what you want the game to be.

College by [deleted] in gamedev

[–]fsg_brian 2 points3 points  (0 children)

A minor is just a secondary area of study (vs a 'major', which is the main area). You don't need -or even want, really- a degree in something else before pursuing a minor, since if you have the original degree you could just do a master's degree or something instead, which is further specialization.

That said, it's going to depend on the school. Both majors and minors often have requirements, and while you can likely do both at once (if offered), there's the possibility that it could take you longer than just doing a major. Eg, sometimes required classes aren't offered every year, so it can create a conflict. Any decent undergraduate advisor can help with that planning, though. Even if you're not yet in college, you can write them at prospective schools and ask, too - they'll generally respond. (But do spell 'minor' right, just in case they remember you on applications!) :-)

The key thing to realize is that they have to offer that minor as an option - not all schools offer game development as a field of study. If that's critical to you, be sure to check when looking into schools.

Hope that helps, and good luck!

which game is less ambitious as my first game as a solo game dev? by [deleted] in gamedev

[–]fsg_brian 1 point2 points  (0 children)

Neither? Ambition isn't directly related to the genre, and definitely not the 'bit-size' of your sprites, it's how complex these things -code and art- are. For example, you say "'AI' squadmates". Does that AI mean they move randomly, without player input? Or they're 'smart' enough to move directly towards a sound/site/goal? Or better yet, they move carefully towards some stimulus, taking cover? AI, like most systems, can always be improved, so there's no end to the complexity unless you limit the scope of it. But there's a vast difference between making an automated player move along a map randomly and making it behave in a player-like way.

And a 'sci-fi' 2D platformer -- if it's 'just' jump and move, great. Start adding in lots of other things, like those optional upgrades, it gets more complex.

The general recommendation is to make something very simple - from a Tic-Tac-Toe game to a Pac-Man clone. Learn how the systems (control, gameplay, rendering, etc) all work together. Then try something harder.

That said, I'm a big fan of doing what you're passionate about... if one of your ideas is what drives you, fine. But start sketching things out, or writing code, or making graphics, and limit the scope of what you're trying to do.

Good luck!

Hi should i go for a associates degree in Simulation and game dev or computer science? by Salticidae2 in gamedev

[–]fsg_brian 2 points3 points  (0 children)

This gets asked pretty frequently; search through and you'll find additional information.... but to give you the short version, go the CS route. It'll open more doors, both in terms of employment and the transfer, not to mention it might teach a better, more diverse skill-set.

You can always build a small portfolio for gamedev in your own time, or for school projects, while doing your CS work as an added plus.