• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

Important skills separating novice and intermediate game dev?

D

Docker

Guest
I've been thinking about this for a while, what would you consider to be the important skills that elevate you from a novice game developer who has learned about collision detection, modular code, refactoring, using states, being able to problem solve and create game mechanics without the need for help etc etc?

I'm at the point where I can implement core game mechanics for all different types of genres without reference material and debug obscure bugs but I feel like I'm going through the motions now and don't really know what areas I should be educating myself further.

I was wondering if some some of the older developers could advise me on important skillsets that I could focus on learning to help elevate my skills or whether I should just focus on seeing a project through to completion at this programming level as at the moment I just feel like I'm using the same 30% of the manual and creating basic but fully functioning code.

I'm lost without direction at this point on where to take my self learning.
 

Posh Indie

That Guy
I've been thinking about this for a while, what would you consider to be the important skills that elevate you from a novice game developer who has learned about collision detection, modular code, refactoring, using states, being able to problem solve and create game mechanics without the need for help etc etc?

I'm at the point where I can implement core game mechanics for all different types of genres without reference material and debug obscure bugs but I feel like I'm going through the motions now and don't really know what areas I should be educating myself further.

I was wondering if some some of the older developers could advise me on important skillsets that I could focus on learning to help elevate my skills or whether I should just focus on seeing a project through to completion at this programming level as at the moment I just feel like I'm using the same 30% of the manual and creating basic but fully functioning code.

I'm lost without direction at this point on where to take my self learning.
Learning is never ending. Searching for "What to learn next" will be an endless endeavor that will only serve to distract you, so I would recommend just working on (and finishing) projects. You will learn new things "as needed" and put them to use in a more valuable way.

Once you know the basics and have enough knowledge to do most anything you would need, the best way to figure out "What to learn next" is to encounter (and solve) it during a time of need.

If you ever figure out a way to know what obscure knowledge you will need in advance, let me know. I will start asking you for lottery numbers, haha.
 

FrostyCat

Redemption Seeker
My advice for you is getting some background in general computer science, further activity- or language-specific training won't help you without it. This means grasping data structures, common algorithms, and a dabble in graph theory. You really need only the equivalent of first-year university CS to be effective, and these days free online lectures will give you that background in months.

In 2007, I was no different than you. I've worked solo on a trading card game, a networked virtual pets game and a turn-based strategy game, all of which progressed to working engines with no hands-on help from anyone. But none of it was clean, and everything took more time than it should because I wasn't able to pull algorithms from the back of my hand. A lot of reinvented square wheels and a hard drive crash later, it stopped working out.

It was not until after I formally studied computer science 5 years ago did I have any real understanding of the craft. It may have been 13 years since I wrote my first line of code, but in reality half of that time had no practical value. In retrospect, that library card should have been used more.
 
Last edited:
D

Docker

Guest
My advice for you is getting some background in general computer science, further activity- or language-specific training won't help you without it. This means grasping data structures, common algorithms, and a dabble in graph theory. You really need only the equivalent of first-year university CS to be effective, and these days free online lectures will give you that background in months.

In 2007, I was no different than you. I've worked solo on a trading card game, a networked virtual pets game and a turn-based strategy game, all with working engines and no hands-on help from anyone. But none of it was clean, and everything took more time than it should because I wasn't able to pull algorithms from the back of my hand. A lot of reinvented square wheels and a hard drive crash later, it stopped working out.

It was not until after I formally studied computer science 5 years ago did I have any real understanding of the craft. It may have been 13 years since I wrote my first line of code, but in reality half of that time had no practical value. In retrospect, that library card should have been used more.
I'm half way through my second year of a CS degree at the moment so I've done DS&A, programming with java, python and c#, 3d modelling, built a basic compiler from lexing through to code generation, data analysis etc but the problem I find is that it is mostly just a large overview of the topics with a set assignment where for example with the compilers, only the inputs and outputs were assessed and not the code quality itself.

Maybe I haven't been creating games for the right genres or it's because I haven't been attempting to go to a complete project due to my AWFUL art skills but I haven't found much use for DS&A as of yet as I haven't touched things like inventories and possibly because I'm doing things a different way when if someone more experienced saw it they may notice that the same thing could be simplified with a stack for instance.
 

FrostyCat

Redemption Seeker
I'm half way through my second year of a CS degree at the moment so I've done DS&A, programming with java, python and c#, 3d modelling, built a basic compiler from lexing through to code generation, data analysis etc but the problem I find is that it is mostly just a large overview of the topics with a set assignment where for example with the compilers, only the inputs and outputs were assessed and not the code quality itself.

Maybe I haven't been creating games for the right genres or it's because I haven't been attempting to go to a complete project due to my AWFUL art skills but I haven't found much use for DS&A as of yet as I haven't touched things like inventories and possibly because I'm doing things a different way when if someone more experienced saw it they may notice that the same thing could be simplified with a stack for instance.
If you do mostly action games like the majority of the GM user community, data structures and algorithms matter a lot less than geometry, vector math and linear algebra. A lot of people around here refer to aiming and basic pathfinding as "advanced" AI, but in terms of AI these are as superficial as basic arithmetic. To really appreciate AI and get a real handle on data structures and algorithms, nothing short of a turn-based strategy game would do.

And if by now you still see your university courses as mostly disconnected overviews (and they are if you don't intervene, trust me --- that's where most unemployed graduates come from), you need to get cracking on a specialization. You don't have to string together everything --- I've personally only strung together a quarter of mine --- but put some subset of it into a career plan. Do an external job placement, try a proof-of-concept or build further upon a course assignment after it's over --- anything to make sure you don't graduate with a filled transcript but a blank resume.
 

dphsw

Member
I'd say if you can "implement core game mechanics for all different types of genres without reference material and debug obscure bugs", you're already intermediate.

As for 'where to take your self-learning', work on whatever game project seems worth doing at the moment, and learn whatever is necessary to complete it. Learn shader code when it becomes necessary to add the desired lighting effects etc. to your game. Learn more about AI and alpha-beta pruning if your game is strategy-based or involves a board-game as some sort of minigame. If you haven't been completing projects 'due to your AWFUL art skills', learn some simple pixel art, or try to think of a game requiring minimal graphics like 'glow hockey' or 'geometry wars' or 'Fantastic Contraption' or a board game variant, or go through some of the Inkscape sprite tutorials, or figure out how to do blocky graphics like Minecraft or Crossy Road. Necessity is the mother of invention.

The difference between being intermediate and advanced at a skill is mainly a matter of experience. The only way to have a really wide range of skills to call upon to solve whatever problem comes up in your programming is for you to have had lots of practice. (I guess I'm saying something similar there to what FrostyCat said in that final paragraph - though I didn't do computer science at university, my experience of watching some of the lectures on YouTube is that they aren't very useful - what's useful is gaining experience of putting those concepts into practice.)

Taking everything into account, I'd recommend you try making a board game, with a new variant - maybe dots-and-boxes but with some different shapes thrown in (different graphs, in mathematical terms), for instance. That would surely be within your graphical capabilities, you could do it with 'glow' style graphics if necessary. You'd have to learn a lot about AI for it, and it would certainly involve DS&A. It would be a way to tie together some of the stuff you haven't used so far, while learning something new, and completing a project.
 
Seems like you need some more work on your problem solving! haha
Think of a game you want to make --> if you can't think of one, look at lots of games, play lots of games and see which one of all those you want to make.
--> try and make the game you want to make, all the while trying to implement the "best" features from each of the games you saw and/or played.
--> there will be lots of features and effects you will not be able to do, and so, in order to implement each one, you will begin a learning journey for each
==Endless, skill up opportunities
 
Top