Hello,
I am having some trouble finding next steps. I am interested in gameplay programming. The problem is that I am not sure where to learn the skills after the basics. Do you have any advice or maybe book recommendations? Thank you.
Hello,
I am having some trouble finding next steps. I am interested in gameplay programming. The problem is that I am not sure where to learn the skills after the basics. Do you have any advice or maybe book recommendations? Thank you.
Hi! What kinds of games have you already made? What 'previous' steps have you taken? My advice is to make more and more :)
Thanks for the response!
I have made a few prototypes with Unreal Engine using both C++ and blueprints. I also have experimented a little with physics using JavaScript and drawing to canvas. My more finished project in Unreal is a shooting range that tracks the score and uses both the default, sphere projectiles and ray tracing depending on the gun selection. My other prototypes are pretty basic 3d adventure games that involve collecting items either in the level or in simple mini-games.
However, it feels like the gameplay is mostly based on Unreal Engine's defaults. If I wanted to try to make something that is not already implemented in the engine, I am not really sure where to start. For example, a grid-based movement system or overworld map system.
It would help to know your educational background.
I will make a VERY bold guess from your info, that you have not finished a bachelor degree in IT/game IT. Unlike other gamedev specialists(like physics programmer, shader programmer etc.) gameplay programmer usually don't have to be specialised in 1 direction, therefore broad knowledge of basic IT principles and algorithms is a bread and butter of gameplay programmer. So, as a starting point, I would recommend, to deepen your knowledge in IT(in software side ofcourse, not hardware). From my personal experience(I am currently working as gameplay programmer in 1 studio) I can say, that in 99% of time you will use those basic things.
Some studios(practically all big ones) will also require some knowledge of game design. While game designer do all designing job, gameplay programmer sometimes must be a filter/counsellor to double-check ideas of game concept. But please, dont focus on game design much. Only 5% of total gamedev knowledge should be about "game design".
Hello Ripian. You are correct. I am working on a bachelor's degree in game programming and design. Thank you for the advice. I have started reading programming books in my free time to help broaden my understanding. Is there any specific resource that you found really helpful?
Jason, two related suggestions about getting into the mindset of gameplay programming, both stemming from the assumption that game design is the most unpredictable part of any project and the gameplay programmer needs flexibility in thinking more than pure research or math skills (which is what we tell ourselves because we lack those...)
1. Start with a very simple, classic game: Space Invaders, Tic-Tac-Toe, your basic run and jump platformer, a simple shooter...and start coming up with crazy "what if" ideas and trying to implement them. What if a Space Invader shield would fall on you if you stayed under it too long. How about a 6X9 grid for tic-tac-toe--and what would be the victory condition? What if hitting any platform in a platformer change gravity. What if your shooter opponents shot healing icons at you while you were losing health constantly because of the environment?
Get creative with user input too. Pong with the paddle control in a single key or button. A turn based Mario game (fixed movements, so many enemies and hazards on the screen, you'd have to think far ahead). Asteroids with no thrust--your gun yields a kick backwards when you fire.
Dealing with weird problems of how generic or specific code should be is what much of gameplay programming is--especially if you're on a small team and have a good deal of responsibility (q.v. the discussions on object-oriented programming.) Part of my portfolio back in the day was a poker app (Pretty ugly too: I knew my technical limits and being an English major, I often got hired knowing I could be drafted for emergency documentation duty), but I did a variation where you played hold 'em and players could bid on cards. It's an existing turn based game with an added auction mechanism and all that entails. That's what help me land my dream job.
2. If there's an accessible tabletop game development community, get involved. Go to Unpubs. (unpub[dot]net) or any convention where they do playtesting with unfinished designs. Changes often occur during the playtest (ok for the rest of the game, you're all drawing three cards and now pass one to the player with the lowest score). Ask yourself, How would I implement that change if I were porting the game? Would I be ready for it? What other questions would I need to ask?
Hope this helps more than harms.
Pax.
Sorry but I dont think, that I can recommend something useful....
On the other hand, I strongly agree with Mosker's first paragraph. I will explain(in VERY simplified manner) how most of game-IT guys learn.
Step one) Do something.
Step two) Fail.
Step three) You have just generaled problem for yourself.
Step four) Find article/book's chapter about this problem.
Step Five) Study this problem.
Step six) Apply your new knowledge to solve problem generated in steep three.
That's why it is very beneficial to recreate old and simpler games, because after that you will know what you are looking for(what problem you are trying to solve). Also to add to Mosker's first paragraph, it will be great if you study any random IT problem. Just to quickly name some of them: 1)A* algorithm, 2)Problem of balancing 2 teams by some criteria, 3)Sorting algorithms(I only recommend to learn "quick sort" and "insert sort". You dont need to know 6+ sorting algorithms but at the same time it is bad idea to use only bubble sort :D).
As an example, lets take your request of "grid base movement". Ok, so you already at step three, from this point I would probably think of some grid based game(tic-tac-toe or chess). After that just find tutorial/article on how you can implement it :D, done.
I more then sure, that where is books that examine 10+ classic games in c++/c#/java but unfortunately I don't know any of them personally. In my time, I read similiar book but it used AS3 language as example(and I doubt that somebody still uses this dead language) so I will better not mention it(unless ofcourse you have heavy expertise with programming languages and know how to read unknown c++/pascal style languages).
If you have any question you can throw me a PM.
Happy coding.