• Advertisement

cyberpnk

GDNet+ Basic
  • Content count

    55
  • Joined

  • Last visited

Community Reputation

369 Neutral

1 Follower

About cyberpnk

  • Rank
    Member

Personal Information

  • Interests
    Art
    Programming
  1. If you already have a CompSci degree, then you should probably focus on the experience and portfolio side. Most job postings I see ask for at least a 4-year math/engineering degree, so you should already be good to go there (even if it's not a super prestigious school). But the degree alone is not going to get you hired (even if it will open some doors and/or stop your resume from being trashed). So, yeah, work on some projects. Open-source is a good idea, I've been asked for source code in interviews and having something on github would be sweet, assuming the code is a good example of your skills. Making an indie game, even something simple or even if it doesn't make much money, would probably help to get you some experience and also something to put in a demo reel or send to potential employers. It doesn't even have to be a full game, for example, if you are going for a graphics coding position, maybe a sweet graphics demo (ala a 64k intro) could be enough to gain some interest, etc. Just depends what you are going for. If you want to do gameplay programming, maybe a game with simple polygon graphics like Super Hexagon or something would be fine if the gameplay was solid. People usually say to start with classic clones, like doing Breakout or Space Invaders. I think this is good advice to learn, but you will probably need something more advanced to get hired. But it's a good place to start if you haven't really done much game coding at all. Then build up your skills and try something a little more original or ambitious to make a name for yourself. Like anything else, it takes time and effort, and no one will believe you have the skills until you prove yourself. Good luck!
  2. If you have to ask, the answer is yes. Unity is about the best choice for beginners and that's a good place to start.
  3. Which Degree Should I Pursue?

    I would say go for Computer Science. Most game dev programming jobs list that as a requirement (or at least a nice to have) and it will give you a well rounded foundation for becoming a programmer. As @swiftcoder says, it also gives you some flexibility if you want to get a non-gaming job down the road. Game dev specific degrees aren't worth as much, even if you may actually learn more applicable skills. I actually had a similar decision years ago, and ended up switching from CompSci to art school and kind of think I made the wrong choice. Though I'm sure people say you can learn things on your own, etc. I find that lacking the CompSci degree has held me back from more technical positions. So I think it would be worthwhile.
  4. You should probably pick a popular resolution to target, such as 1080p (1920x1080), so that your art looks optimal. And then have the actual screen resolution be fluid to whatever resolution or aspect ratio the user has. For example, some people (like myself) use 4K TVs as monitors, it which case the screen would just scale up 4x to fit (this is easy since it's a multiple of 1080p and the same aspect ratio). However, ultra-wide screens are more popular these days and (less so) multi-monitor configurations, and it would be nice to support an arbitrary aspect ratio. In that case, your game would render art to the left and right of what would normally be seen on a 16:9 screen. In any case, it would be a mistake to hard-code a few resolutions and expect that all your customers just happen to have the same monitor you do.
  5. Good points. I'm definitely still learning but I find (limited) use of Singletons to be more convenient than passing pointers all over the place, though I agree it's basically a global variable.
  6. Honestly, I don't think there is anything wrong with using Singletons. Especially for classes you know will be accessed anywhere, it's pretty much the most straight-forward way to do it.
  7. Was it a mistake to develop my own engine?

    So, I've been on a similar journey. Off and on I've been building an engine for about 5 years. Originally in DX11, then ported to DX12, and most recently I've rewrote it from scratch in Vulkan, though I'm just at an early stage now. I think I've learned a lot, and it was a worthwhile experience, but I'm nowhere close to finishing a game after all that time. In that sense, if I wanted to finish a game, I could have done so with Unity or Unreal in much less time. However, I'm sticking with it because I have an original idea I'm not sure can be done right now in the off-the-shelf engines, and I want to give it a shot. That said, I have evaluated the commercial engines, mostly Unity and some Unreal, as well as quick tests in less popular engines like CryEngine, (the now defunct) Stingray, etc. I've found they all did some stuff well and some stuff not so much. Unity is pretty solid overall, and probably would be my pick if I had to choose one. There are some specific reasons it's not perfect for my project, and I would like a stable Linux editor, but overall it's OK. Unreal looks really nice graphics-wise, but I found the editor to be bloated (it takes forever to load, even on a top-shelf system), and is really unstable. I've had it crash when doing seemingly common things like deleting an asset from the project (and made worse since it takes forever to load up again). One time the crash completely corrupted the project and I was unable to open it again (loading the project itself would crash). Of course, I had a backup, but it still doesn't make me feel comfortable that my project could be permanently corrupted just by removing a texture. Unreal also has limited support for custom shaders, which is fine if you like the "Unreal look", but if you want to do something unique there may be hurdles. The smaller engines I tried have some interesting features but ultimately didn't look significant better than Unity/Unreal. And there is a concern of continued support with the less popular options, like the financial situation with Crytek, or Autodesk shutting down Stingray after like 2 years. That would be really troublesome, for example if you spent 2 years building a game in Stingray only to have the engine maker abandon the project. However, if your game is fairly generic in the functionality and graphics style, you could certainly do something with Unity or Unreal. In terms of the level editor, you wouldn't be using the engine editor to give to users, rather you would build a custom editor into your game itself. In which case, you can make it simple and user-friendly. Both Unity and Unreal use PhysX, which is pretty decent for most common use-cases. You can use arbitrary convex shapes, though, to your point, Unity used to support concave objects with an older PhysX version, and then Nvidia removed that feature. While you can still simulate concave objects with a set of convex shapes, it would require some rework if you had built your game around this functionality. In my case, I'm investigating advanced physics solutions using the GPU, and this is a little difficult with commercial engines. While it can be done, it feels like you are fighting the engine in a way when attempting this. For example, in Unity, you could write a physics engine in a compute shader and then render dynamic objects. However, if you do this, it bypasses all the standard material shaders, in which case you lose shadowing, lighting, etc. So you'd have to rewrite the lighting and shadowing yourself and then hope it plays nice with other objects that are rendered normally. Unreal, on the surface, seems better since you have the source code and can make arbitrary changes. However, if you want to update the engine, then you'll have to manually merge those changes every time you want to update, and things could break in unexpected ways. At that point, you would have to have extensive knowledge of the code-base and would probably be capable of writing your own engine. All that said, if you are making a vanilla game, then the existing commercial engines would probably do fine. They have their pros and cons, but they cut out a ton of work for you on day one. If you are trying to do something more innovative, I think custom engines still have a place. Even if not, working on one is a great learning experience and definitely a solid way to gain some skills. I've gone back and forth over the years (and abandoned and restarted the project several times) but I do think it can be worthwhile in some situations. Good luck!
  8. Best to use a capture program for this. FRAPS is very old and my not be reliable for all programs. On Windows, you can use MSI Afterburner, or the apps that come with your graphics card (Nvidia ShadowPlay or AMD ReLive).
  9. Which API to learn first

    I think DX11 is a decent choice to start with. I've been (slowly) building game engines in my spare time. I started with DX11, then ported that project (partially) to DX12, and recently I've been messing with Vulkan. DX11 was definitely the easier one to work with and it's still very much relevant for coding games on Windows. DX12 and Vulkan require a LOT more code even to do simple things and can be daunting to start with. With DX11 (compared to DX12) there are also more books and tutorials online, so learning will be easier. However, I do really like Vulkan, and I've found the API to be more clear as to what specifically you are doing with the code. So, in this sense, something like Vulkan can help you learn how GPUs work a little more than the older APIs that can hide a lot of details for you. I also find the Vulkan API to be more straight-forward and understandable, but this may be because I came in with experience from DirectX first. There are also a good amount of books and online resources for Vulkan (compared to DX12), so if you do want to try with the newer APIs, I would recommend Vulkan over DX12. So, all in all, starting with DX11 is probably a good choice. It will be easier to get running, and you'll be building skills you can apply to other APIs if you decide to switch in the future. Definitely get Frank Luna's book, it's one of the most well written graphics programming books out there, and the included source code is a gold mine.
  10. I have an art degree, but I don't work as an artist. I think schooling can be useful to learn and for the experience. You can also make connections with other students and teachers, and some schools can help with job placement. I had classmates that got hired at top-tier AAA studios right after graduating, but they really excelled at their practice. However, if your art isn't any good, no studio will hire you just because you have a degree. Similarly, if you're a rock solid artist, your portfolio will speak for itself and no one will care if you have a degree or not. So, if you're already confident in your art skills, I would say the degree may be unnecessary. If you think you're not prepared, or if you still need to work on your skills, college can be a great way to learn and build a portfolio. Also, having any sort of degree (even somewhat unrelated) can help with getting interviews, as it shows you may be more responsible than someone else with only a high school diploma or that dropped out of college. But I don't think a "game art" degree is strictly needed, especially if you're already skilled and have some degrees under your belt. But it can really depend. I know a lot of people say degrees are not needed at all, even for programming, but I still want to go back to school for Computer Science. So I understand the desire for better qualifications and to learn in a more formal environment. So I don't want you to get the idea that I'm saying degrees are useless. They can certainly help get you hired, but you'll have to do the work to have a solid portfolio either way, and that will be the thing you're ultimately judged on.
  11. Websites which may help you find a games job

    Thank you so much. This is very helpful.
  12. Fifth Engine

    We have a problem. It has become self-aware.
  13. 2D What books should I get next? C++

    If you want to learn C++, these are the 2 best books I've read (similar names but unrelated). https://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/ https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113/ Regardless of what API/engine you use, C++ skills are good to have. In terms of graphics, you have a few options. Realistically, going with an off-the-shelf engine will save a lot of time. However, it sounds like you are interested in learning, so writing the game on a lower level can be fun and rewarding (as well as extremely hard and frustrating). But if you keep your game to a limited scope, it is possible. You probably won't find a book specifically on making RPGs in DX12, so you will have to be inventive. Technically the API and game logic code are separate anyhow, so you don't have to learn them together. Get an RPG game book for any API or engine (even older) and then substitute whichever newer technology you want. The basics of game programming haven't changed much in years, so even a DX9 book will be useful if you ignore all the API calls. The most important thing is figuring out what you want to do. Is it to make a game? A game engine? Learning programming? Is it to tell a story? Build a portfolio? Have a fun hobby? Etc. That may give you an idea of what path to choose.
  14. Worth Going Back to School in Mid-30s?

    Thanks for all your comments. Since I have some previous college experience, I think I could transfer a bunch of the credits. I may only be looking at doing 2 years (or so) to get the CompSci degree. While I agree that a degree is not strictly needed, and many people are successful without it, it's something I think will be worthwhile for myself. I'm not sure I'd want a complete accelerated course as I still want to learn something. Since mostly all my programming has been self-taught, I feel like I'm somewhat at a disadvantage to people with the formal training, so part of it is learning the academic way (even if in some ways I'm already more advanced). Thanks for all the advice, I will still think about this for a bit but it's been helpful.
  15. Worth Going Back to School in Mid-30s?

    @Tom Sloper Thanks. I have a portfolio, but it's mostly all 2D games and I'm not really interested in 2D anymore (actually, I never quite was, but it seemed like a good way to get into the industry at the time and maybe move up). I realize a degree is no guarantee of anything, but from what I've seen it can certainly help my application not be put in the trash. And, no, I don't think school would be a waste of time in that I would be learning and gaining credentials. However, I could also spend 4 years building indie games or otherwise getting experience, which could be a better use of the time. I enjoy learning on my own too, which I'm constantly doing (maybe too much), but saying I've read dozens of development books in my bedroom doesn't hold the same weight as having an actual degree, even if you learn the same things.
  • Advertisement