Code Monkey home page Code Monkey logo

game-developer-roadmap's Introduction

๐ŸŽฎ Game Developer Roadmap ๐ŸŽฎ

Roadmap to becoming a game developer in 2022, inspired by developer-roadmap.

Below you find a set of charts demonstrating the paths that you can take and the technologies that you would want to adopt in order to become a frontend, backend or a devops. I made these charts for an old professor of mine who wanted something to share with his college students to give them a perspective; sharing them here to help the community.

Check out my Github and say "hi" on Twitter.


Purpose of these Roadmaps

The purpose of these roadmaps is to give you an idea about the landscape and to guide you if you are confused about what to learn next and not to encourage you to pick what is hip and trendy. You should grow some understanding of why one tool would be better suited for some cases than the other and remember hip and trendy never means best suited for the job.

Note to Beginners

These roadmaps cover everything that is there to learn for the paths listed below. Don't feel overwhelmed, you don't need to learn it all in the beginning if you are just getting started.

Acknowledgement

Thanks to Lyn Heo for providing the content of server roadmap and Beomjun Gil for providing awesome social media preview.


If you think that these can be improved in any way, please do suggest.

If you want to see it as a dark theme, click this.

Introduction

Game Developr Roadmap Introduction

Client Roadmap

Client Roadmap

Server Roadmap

Server Roadmap

๐Ÿšฆ Wrap Up

If you think any of the roadmaps can be improved, please do open a PR with any updates and submit any issues. Also, I will continue to improve this, so you might want to watch/star this repository to revisit.

๐Ÿ™Œ Contribution

The roadmaps are built using Balsamiq. Project file can be found at /project-files directory. To modify any of the roadmaps, open Balsamiq, click Project > Import > Mockup JSON, it will open the roadmap for you, update it, upload and update the images in readme and create a PR.

  • Open pull request with improvements
  • Discuss ideas in issues
  • Spread the word
  • Reach out to me directly at [email protected] or Twitter URL

License

The class is licensed under the MIT License:

Copyright ยฉ 2017-2022 Chris Ohk.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

game-developer-roadmap's People

Contributors

benwiley4000 avatar ijohnnyjohnny avatar imgntn avatar ljubinkovicd-symphony avatar lynheo avatar utilforever avatar victorjozwicki avatar xrayez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

game-developer-roadmap's Issues

Make it more readable

I know that, in any programming path, we'll have a lot of important informations, such as a lot of necessary knowledge. But making 90% of the paths recommended or necessary itsn't cool.

  • Try to split it out and reavaliate what is really important. (as we can see in the Web Developer Roadmap inspiration repo, there's many important and recommended, but there's a plenty of possibilities and "pick any" ways.)

  • Sub-divide the client path into Graphics and Programming paths, to let the future Game Developer choose what is really usefull for him/her.

  • Give spaces to make it clear what is the begginer, intemediate and advanced steps. (Learn the basics, getting deeper, maximize your skills, respectively)

In my first try to improve this repo, those are the most important to me, to make it clear for 2018 update and later on 2019!

Update game developer roadmap for 2018

  • Update Introduction for 2018
  • Update Client Programmer Roadmap for 2018
  • Update Server Programmer Roadmap for 2018
  • Add Designer Roadmap
  • Add Artist Roadmap
  • Add relevant resources for each

Add Game Producer / Marketing Guy

Hi thank you for curated all the insight it really helpful,

To market a game or Producing it to final product i think management skill about scaling the game size or choose it market segment is super important. And game producer or game PR guy were still in many needs by small to big studios. If we can add this to the insight i think it will be helpful to indies or jobseeker

About the renewal

Hello, everyone!
First, I'm so sorry because of no updates.
I'm very busy now by implementing some open source projects such as RosettaStone and CubbyFlow.
However, I'm preparing cpp-developer-roadmap and renewal of game-developer-roadmap by yearยดs end.
So, please wait. ๐Ÿ™

HTML need JavaScript

in web HTML is not enough to building a game , you need : JavaScript => canvas2D/3D WebGL
Hope you can add this after checking ๐Ÿ‘

Add TA roadmap

I'll add another roadmap for TA(Technical Artist). Anyone who can help is welcome.

"Start building" implies you should learn everything first

The roadmaps end with a "Start building" node which makes them seem even more intimidating -- like you should learn all that stuff before you build anything. The webdev ones end with "keep learning" which is much more encouraging.

If you wanted something different maybe "explore new areas" or "push the boundaries"?

Add Rust to programming languages for both client and server programming

Rust is a low-level, systems programming language (such as C/C++), developed by Mozilla.
http://arewegameyet.com/ <- on this website you can see that Rust has many great resources for game programming and is surely ready for usage in production.
I would argue it's better than C++, not only because of ownership system it employs, but also because it's just modern and therefore more convenient. It has by default a cross platform build system and package manager so you can install crates (libraries) without a hassle, which can be quite a headache in C++.

I love the project and look forward to see the remaining roadmaps! Pretty good job so far!

Why is HTML5 listed as a programming language?

I understand HTML5 has certain aspects of declarative programming, but I think it's not good to the whole equation due to it being turing incomplete, why not swap it with an actual webgame programming language such as JavaScript?

Game Tester (QA) path missing?

Hi! Great job done! ๐Ÿฅ‡

In my opinion you could include Game Tester path in your roadmap since this role is an important part of gamedev industry. There wouldn't be so much to do in fact: you can reuse parts of Client Roadmap (like Game Mathematics, Game Physics, Game Engines) and add what's missing (more scripting languages, UX, testing methodology, etc.).

Just a suggestion! ๐Ÿ‘ I can help if you decide that my proposition is worth doing.

Submit to roadmap.sh

Right now the creator of the repository that contains the web development roadmap has created roadmap.sh. The goal seems to be to collect roadmaps off all sort of developers and not just web developers (at least that is how I've interpreted his comment on an issue in the repo).

I'd love to see game development up there since this roadmap already matches the style of the others I think it's a perfect candidate ๐Ÿ˜„

I don't mind helping out by filing a submission, I'd just like to know your thoughts on doing this in the first place.

Ultralight and HTML5/JS

I noticed an issue (#25) saying to remove html, but I think it would be better if it says html/JS instead. Another thing would be added ultralight to game engines, however it requires manual physics calculations, and uses HTML, JS and C++ together. It's pretty much just a UI library, but with either an open source physics engine or a custom one it can be quite useful. It's also going for adding a UI to a game server.

The Future of game-developer-roadmap

Hello, I'm Chris. Long time no see!
First of all, thank you for your interest in the repository. And I'm sorry that I haven't uploaded any content for a long time. Currently, I'm working on several open source projects such as RosettaStone and CubbyFlow. Also, I'm very busy because the technology stack has changed recently as I changed jobs. The reason why I am writing like this is to talk about the future.

Roadmap

I'll start to make the roadmap step by step. The order in which I will work in the future is as follows.

  • Client Programmer
    • The Basics
    • Game Mathematics
    • Game Physics
    • Data Structures
    • Algorithms
    • Game Engines
    • Programming Languages
    • Computer Theory
    • Computer Graphics (Rendering)
    • Artificial Intelligence
  • Server Programmer (TBD)

If there is no special reason, I'll update the roadmap every week. And I'll write a progress report and share it with you. I plan to finish this work by the fourth quarter of this year. Of course, I inform you that it can be postponed depending on the situation. However, I'll do our best to proceed as planned.

Please give me a lot of support so that I can complete this roadmap safely. Thank you.

Add links to learning resources for each topic

Could you provide and update the content with links to books or online resources either free or paid, I am a junior dev and I would like to strengthen my skills, thank you very much for this resource.

Server roadmap memo

Network Programming -> Block Socket
Network Programming -> Non-Block Socket
Network Programming -> Select

Advanced Network Programming -> IOCP
Advanced Network Programming -> Epoll
Advanced Network Programming -> asio

Server Framework or Engine -> ACE Framework
Server Framework or Engine -> ProudNet

Advanced Algorithm -> UDP
Advanced Algorithm -> TCP/IP
Advanced Algorithm -> HTTP

Database -> MS SQL
Database -> Oracle
Database -> MongoDB
Database -> Redis

Dark theme version

Hi!

I think it would be great to have a dark theme version of the roadmap. Thanks!

Incorrect intro

The intro says either client or server, when you should in reality know both. Saying developer or tester would make more sense, and splitting developer into client and server would also make more sense.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.