Artificial intelligence programmer

Started by
7 comments, last by taby 3 years, 6 months ago

What is the hardest thing in your opinion about writing code? I want to be a game programmer and I am curious about any feedback. I have experience with C++ C# JavaScript and python. In my opinion writing code can be challenging when experiences multiple languages because I tend to get them mixed up sometimes. I have experience with 3DS max and Unreal engine as well. What else could I get experience in- in order to become a better programmer. Also what are some soft skills and technical skills that you may have experienced? How important is it to work on a team an be organized?

Advertisement

Many questions, many more possible answers

Dametres said:
What is the hardest thing in your opinion about writing code?

The hardest thing on >my< opinion is (this is based on your personal skills) is it to get a clear picture of what to achieve and depending on the project scale, to stay motivated to reach your final goal. Some projects are really small, while others are big as hell and those projects are complicated in provisioning. Forget about the thoughts to forsee everything, there will always be a point in process where every good plan has to change for an unforseen situation. Some technology doesn't behave as it should or your language doesn't offer a way to achieve that goal easy. The if things get stuck on some point or just take too long to get a checkmark on your list, it will drop motivation until you feel attracted to do something else.

Dametres said:
In my opinion writing code can be challenging when experiences multiple languages because I tend to get them mixed up sometimes.

I don't think so! If you have a year of intense experience in every of those languages, you should know when to activate your C# or C++ mode and then there is nothing about mixing language features accidantially. The experience I made is far more frustrating, when you know that a feature is supported in one language and the other is lacking it, that you may think “in language X would this be very easy, why have I to mess with a workaround in my language Y”.

Dametres said:
What else could I get experience in- in order to become a better programmer

Using a 3D Software and knowledge about Unreal is not what makes a good programmer. You should know the APIs you want to work with in the end but a good programmer is more a creative guy that is good in finding solutions for problems, it must be capable of analyze a certain situation and know the -behind-the.scenes area of the system they work with. Knowledge about certain Software is a specialization but not a must have to be a good programmer.

Dametres said:
How important is it to work on a team an be organized?

This depends also nn your personality. In my experience, it is better to work on a team but more important is it to have some people that are on an equal or higher level of knowledge and experience. This helps them to understand your code and to discus solutions while it helps you to improve your code and have input on situations that you might have overseen. When writing code all day, it may happen that you write real bulshit, especially on the end of a log work day.

Organizing your team is as well important. A good team is an organized team. This starts by getting into consent how the code should be written in certain language to allow all team members to have the same rules for not just writing but also reading someone else's code and goes as far as to give someone the leading position to not just program but spend more time on planing next steps and supervising other team members

Dametres said:
What is the hardest thing in your opinion about writing code?

yup i second what @shaarigan said and also there are 2 things i personally find really hard to do:

  • updating existing code not written by me and that has no comments and is written in an unmodular/unobject-oriented way, basically code that works but that makes nosense of how it has been cobbled together ?;
  • code that already exists and works but that needs to be modified to accomodate new tech.. is sometimes straight forward to update (when frameworks are well designed -lol-), but on occasion it may take weeks to update -boom-: That usually means making sure that the existing functionality isn't broken

actually 3 things ? :

  • implementing/coding new OR existing functionality which doesn't have an existing tutorial or paper or research , or one such functionality that has thousands of papers and u don't know which to pick then when u pick one and code it, u find that u could have been better off with another paper's implementation -then it gets harder and the search goes on- …. etc…

4th -lol-:

  • keep motivation up, it's a like a freak show everytime u look at unfinished code and u browse the net/youtube/fbook/movies/pub/news/everything for 100hrs each and u come back and the same code still stares at u

… stop counting the vote:

  • when u're debugging code looking for that bug and it seems to go on forever, u've tried everything and nobody believes u, u look cheap, u feel like the person who coded this should have never been employed, u pray everyday and JIT debugger tells u nothing new and those render profilers tell u so much that they can't see that the bug is code which is not actually there; then u have to test on multiple cards, test different code languages, multiple SDK versions, multiple platforms, run regression tests from years yonder gone, blame 50 people who keep saying “this should work …or …this works on my machine”, then sack 20 people, close a department and rehire; then the new guy goes “dude, u told me that the game has a boss that never dies but i changed this code and…voila: ”
// note: there's a bug here but i can't work out what it is: 
// this should work but the monkey boss stays alive for some reason??
// we'll just tell people that our game has a boss that never dies 
if (is_monkey = 0) 
...

to

if (is_monkey == 0) // the monkey boss now disappears when guybrush hits it

ah well… ?

Reminds me to a project where I had to bring a game to the Playstation and the game's primary character was so slow when walking from one edge o the screen to the next. Turned out that a previous guy/team/company/whatever has had coupled the D-Pad and Analog Stick input values together so hitting both D-Pad and usual movement did the trick then.
Facepalm moment of the day!!

ddlox said:

  • …then the new guy goes “dude, u told me that the game has a boss that never dies but i changed this code and…voila: ”
// note: there's a bug here but i can't work out what it is: 
// this should work but the monkey boss stays alive for some reason??
// we'll just tell people that our game has a boss that never dies 
if (is_monkey = 0) 
...

to

if (is_monkey == 0) // the monkey boss now disappears when guybrush hits it

ah well… ?

That's hilarious! Please tell me that's an anecdote and mistake from the real world! (Also were you at LucasFilm games?)

SuperVGA said:
Please tell me that's an anecdote and mistake from the real world!

-lol- this example is real but not for monkey island ? (i haven't worked for LF games but loved to play the series back in the ‘90s like crazy), i found some folks keep it alive for many games of that era here: http://www.abandonia.com/en/search_abandonia/monkey+island

the code example can be detected with Static Analysis tools such as PVS-studio, here is another example: https://www.viva64.com/en/b/0120/

(Sorry I've diverged from the OP a little bit)

So have fun ?

The hardest part about writing code is making it easy for humans to read. Getting the computer to do what you want is the easy part. Making the code understandable even as it's changed many times by several people, that's really hard.

I'm guilty of writing unmodular / procedural code, and I should know better… I've been coding for decades now.

Anyway, I agree that making the code readable is the holy grail of elite programming.

If you know Unreal Engine 4, why don't you try to emulate some of that functionality using OpenGL 4?

if(0 == something) // OK
if(0 = something) // won't compile!

Try King's Quest IV, the best game ever invented for PC.

This topic is closed to new replies.

Advertisement