Skip to main content
GameDev.net gamedev.net
🔒 Locked

Programming

Started by Noixious Jan 29, 2015 at 5:41 AM 28 replies 7.6k views
Original Post
Noixious
Noixious

Hi, I'm not exactly the best at programmer and that's really why I'm here posting this. I've always wanted to get involved in Programming, specifically to make my own game, which is why I'm in the Game Programming section posting this. I'm currently beginning a project of my own, it involves creating a game. I've done most of the Creative Writing and Design for it and have several people who are skilled at animations and graphics helping me out along with someone making music(obviously after the game is built), but I really don't have anyone to do the Programming for it.

With what I mentioned above, I want to learn programming to help make this game, now it's a really complex game, probably one of the most complex games someone could probably try to built, essentially it involves a virtual world, but not just a 2D world, it's essentially 2.5D or even considered 3D with actually biomes and resources. If you want more details on it, I have a post in the Game Writing section under Creative in the forums.

I was wondering if any of you skilled programmers or even fairly newbish programmers know of great resources and places to learn how to program skillfully, I'm not really looking to spend money on learning to program especially when I'm not the wealthiest of persons. I know it is going to take a lot of time to learn how to program correctly. I've already used Codecademy a bit, and know some basics about JavaScript and HTML/CSS, but I was just wondering if you guys knew some better or other sources for learning. That is all.

Thank you for reading all of that, and I know to some of you it was probably just a waste of space in this forums tab, but eh, it's whatever.

L. Spiro
L. Spiro

I don’t have advice on resources for learning. I have practical advice for what you actually need to know for your current situation.

Drop your project for your own sake and for the sake of the others working with you. It is not fair to them that their hard work go to waste just because their programmer (you) has no clue how to program but just decided to jump into the deep end foolishly thinking he could learn to fly before learning to walk.

When you drop such a nonsense first-time project and join us back here in the real world, your next steps are:
#1: Code a small game, which could even be just text-based.
#2: Code a slightly bigger game.
#3: Code a clone of a real game, such as Tetris.
#4: Clone a slightly bigger game (Super Mario Bros.) or a similar-sized game with totally different gameplay (Space Invaders).
#5: Keep making bigger and bigger projects for the next 5 years.


The code you write when you learn a new language is shit.
You either already know that and you are wise, or you don’t realize it for many years and you are an idiot. Either way, your learning code is objectively shit.

Is shit code the way you plan to execute your big amazing super-ultra fantasy project?

When I was excited about my super projects when I was a kid, I literally felt guilty thinking about trying to do them given my experience and skill level. I literally cared about them, so I waited until I was good enough.
If you actually care about whatever game you want to make, don’t program it as a newbie.

And as I already said, others are depending on you as well, so you have no right to be selfish. At least if I had failed at my own projects I would only be disappointing myself, but when I joined a team and the first task they gave me was something I simply could not yet handle, I didn’t joke around asking, “How do I learn super-quickly?”, I simply left the team, for their sake.

Be responsible. Learn correctly and tackle large projects years later when you are able.

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid
Code Sage
Code Sage

I can't really give you specific resources because I have no idea which programming language you are coding your game with, but I learned most of my programming skills on YouTube and on various programming forums such as this one. I set out to make a simple game such as Pong, it sounds cliche but it's true. You should start off with a very simple game to get your feet wet and work your way up to more and more complex games. This is where a forum with an active community comes in. In my opinion it is really really important to have somewhere you can go to ask questions. I am by no means an expert at programming, but I have done quite a bit of it and I still ask questions daily. If you have a very generic question than Google is also a good resource to get quick answers to your problems. All and all though, I simply learned by doing and asking questions.

Noixious
Noixious

Perhaps I wasn't very clear, seeing L. Spiro 's comment, I'm not the programmer for this game, I simply planned the entire game and have basically everything written down for it, like research towards stuff that will be inside the game, information, what will be in the game, game mechanics that should be implemented, realistic things like pollution and such, how people calculate certain things in real life, resources, biomes, basically everything that a Writer for a game is suppose to do. I just felt, that learning how to program would be cool. I only suggested that I learn programing because I really don't have anyone at the moment to program. I could surely find someone if I really threw myself out there, but I really only have talked to people I've known for a long time because I trust them, I'd rather not rely on someone I don't trust. I just figured if I learned how to program I could help. That is all, that's for your guys responses.

I don't really plan on posting this game for money or for fame, me and my friends really just wanted a game for ourselves to play, seeing how there isn't really a game that grants us everything we desire, so we figured, why not have fun making something of our own to enjoy and for ourselves instead of playing pointless games on the internet that don't offer us everything we want.

L. Spiro
L. Spiro

Being a side programmer is another story when it comes to dropping the project or not.

As long as there is a sturdy main programmer, you could do UI things etc. while you learn real programming.

But the advice on how to learn programming remains constant. You still need to start with small projects and work your way up.

L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid
Glass_Knife
Glass_Knife




Drop your project for your own sake and for the sake of the others working with you. It is not fair to them that their hard work go to waste just because their programmer (you) has no clue how to program but just decided to jump into the deep end foolishly thinking he could learn to fly before learning to walk.




But the advice on how to learn programming remains constant. You still need to start with small projects and work your way up.

Listen to her. She knows what she's talking about.

Datamancer
Datamancer

Being a side programmer is another story when it comes to dropping the project or not.

As long as there is a sturdy main programmer, you could do UI things etc. while you learn real programming.

But the advice on how to learn programming remains constant. You still need to start with small projects and work your way up.

L. Spiro

Spiro speaks the truth. I will tell you from experience that this will not work out in the long run. A few years back I decided I wanted a hobby project away from my work projects. I joined a team that sounds very similar to yours. At the time I wasn't informed that I would be the only programmer that could program. Needless to say, I wasn't happy when the entire project got canned about a month and a half later and I had dedicated some serious effort into getting stuff off the ground. Even as a side programmer, not knowing how to program just hurts things in general. As Spiro mentioned, you have got to learn how to walk before you run. Can the project so people don't waste their time, pick a programming language, start off small.

Byte

"The code you write when you learn a new language is shit.
You either already know that and you are wise, or you don’t realize it for many years and you are an idiot. Either way, your learning code is ob
blueshogun96
blueshogun96

Drop your project for your own sake and for the sake of the others working with you. It is not fair to them that their hard work go to waste just because their programmer (you) has no clue how to program but just decided to jump into the deep end foolishly thinking he could learn to fly before learning to walk.

But the advice on how to learn programming remains constant. You still need to start with small projects and work your way up.

Listen to her. She knows what she's talking about.

lol

Gian-Reto
Gian-Reto

Listen to her. She knows what she's talking about.

lol

That is the internet for you... Rule #37... the power of avatar images and game avatars. smile.png

Anyway, Spiro and the others are right: Do all the stupid newbie mistakes you can as long as you do it as a hobby and on your own. As soon as others are involved, be honest to yourself and them: if its more than a simple text adventure, you most probably will fail. And that puts not only a strain on future collaborations, it might also strain friendships.

Work on your skills alone until you are ready, or form a team with the intention to LEARN how to build a game, not to build a game.

Trust me, been there, done that. Didn't loose friends in the process, but the team we had back then is no more....

slayemin
slayemin

Perhaps I wasn't very clear, seeing L. Spiro 's comment, I'm not the programmer for this game, I simply planned the entire game and have basically everything written down for it, like research towards stuff that will be inside the game, information, what will be in the game, game mechanics that should be implemented, realistic things like pollution and such, how people calculate certain things in real life, resources, biomes, basically everything that a Writer for a game is suppose to do. I just felt, that learning how to program would be cool. I only suggested that I learn programing because I really don't have anyone at the moment to program. I could surely find someone if I really threw myself out there, but I really only have talked to people I've known for a long time because I trust them, I'd rather not rely on someone I don't trust. I just figured if I learned how to program I could help. That is all, that's for your guys responses.

I don't really plan on posting this game for money or for fame, me and my friends really just wanted a game for ourselves to play, seeing how there isn't really a game that grants us everything we desire, so we figured, why not have fun making something of our own to enjoy and for ourselves instead of playing pointless games on the internet that don't offer us everything we want.

Let's put it another way...

You have come up with an ambitious design to build a sky scraper. You've gotten a few people to help you decorate the interior and paint the exterior, but now you need construction workers and steel workers to actually assemble the sky scraper. You say, "Well, I can't find any right now but I think construction sounds cool. Maybe I'll start building this sky scraper myself! Oh by the way, I've never even built a dog house."

Then you say, "Me and my friends aren't really planning to rent the sky scraper out to tenants to make money, we're just doing this for fun." That doesn't negate the fact that its going to take a shit load of work to build the thing in the first place.

L.Spiro's advice is 100% solid. Start super small. Build the dog house before you attempt anything larger. The dog house sized projects may seem trivial, but they're essentially like the game programmers version of "hello world". It shows you have the necessary project management skills, workflow, and dedication to see a super small project through to the end. The risk of failure is minimal and shows you the areas you need to work on before taking on bigger projects. Once you've got a solid grasp of what it takes, you can move on from the dog house to human houses, then from human houses to small office buildings, and eventually to sky scrapers. Building huge projects are not solo projects, they require a team, and teams are all institutions which require a working team infrastructure which gets developed over time and with experience.

Yes, you should shelf your current project. It's not possible with your current resources. Shelving it doesn't mean you throw it away, you can always pick it up later when you DO have the necessary resources to make it happen.

There are also some project management issues which will come up but you may not know about them yet: Cost overruns and schedules being missed (which are hard to foresee). If you can only support a project and its expenses for two years but in practice it takes three years to complete, your project will fail. Even if you aren't paying your staff, the real "cost" I'm talking about is the cost of motivation and morale (money helps increase this, but isn't the only solution to incentivize people to stay motivated for the duration of a project).

TheComet
TheComet

Spiro speaks the truth.

I started a project as a somewhat average programmer with some artists, but I chose a game that was so far out of my league we had to can the entire thing after a few months. I disappointed everyone on the team.

One of the team members wrote me a really long and hurtful message. Spraying salt on my skinned body would have been less painful than some of the things he said, but it was the truth. He felt extremely passionate about what we were creating, and he blamed me for being an incompetent idiot for throwing the entire thing away and wasting everyone's time.

Trust me, you do not want to go through that pain. I learned my lesson the hard way.

"I would try to find halo source code by bungie best fps engine ever created, u see why call of duty loses speed due to its detail." -- GettingNifty
Brain
Brain
Nobody else has mentioned this but having experience leading a team and managing real world projects helps a lot when working with a team of programmers, artists and musicians.
If you don't have this skill, learn it. It is useful not only for game development but also for your future personal development.

Good luck in your project!
Brain
Brain

Spiro speaks the truth. I started a project as a somewhat average programmer with some artists, but I chose a game that was so far out of my league we had to can the entire thing after a few months. I disappointed everyone on the team. One of the team members wrote me a really long and hurtful message. Spraying salt on my skinned body would have been less painful than some of the things he said, but it was the truth. He felt extremely passionate about what we were creating, and he blamed me for being an incompetent idiot for throwing the entire thing away. Trust me, you do not want to go through that pain. I learned my lesson the hard way.


As the only programmer on my own game project I lost a musician and artist by simply taking a couple of years out for real life.

Once you've lost an artist or musician it is very hard to find someone else willing to work with you who will match the same musical or artistic style of any assets already produced and often it feels soul crushing to have to throw away perfectly good assets because they just don't fit any more.

Nobody has touched on this but loss of any team member hurts the project significantly and how you recover from it is a measure of how well you are able to cope with these issues in a project and actually finish it...
blueshogun96
blueshogun96

Listen to her. She knows what she's talking about.

lol

That is the internet for you... Rule #37... the power of avatar images and game avatars. smile.png

Right. I'm still amazed how many people (even staff) keep mistaking L. Spiro for girl, even though he's explained the story behind that sketch he drew multiple times.

Btw, to the person who just rated down that comment... Not to be a jerk, but FYI, given the above statement, please don't get it twisted. I should have known that someone wouldn't catch the reference, and probably go "zomg misogyny"! Or maybe I just wrecked someone's fantasy about L. Spiro being a girl. :)

Shogun.

Avilius
Avilius

(Off topic and has absolutely nothing to do with the thread)

Listen to her. She knows what she's talking about.

lol

That is the internet for you... Rule #37... the power of avatar images and game avatars. smile.png

Right. I'm still amazed how many people (even staff) keep mistaking L. Spiro for girl, even though he's explained the story behind that sketch he drew multiple times.

Well I'm almost certain that no one explicitly searches for L. Spiro's threads to check if he was a girl or not. I believe the last time he explained it was in 2013.

Or maybe I just wrecked someone's fantasy about L. Spiro being a girl. smile.png

...Shit.

___________________________________________

@OP

We cannot help you if you refrain from giving adequate information. The description of what you want to do is extremely ambiguous and doesn't really help us get an idea of the requirements of your application.

On Rye
On Rye

First, I'd like to say that I like your game pitch and wish you the best of luck with your project!

As for learning resources, I recommend http://inventwithpython.com/inventwithpython.pdf and YouTube. You'll find everything you need there if you know what you're looking for (detailed below). It's important to have an understanding of the following concepts, because they're all you'll need to make a game in any programming language.

  1. Input - You'll need a way to accept input from the player (keyboard, mouse, gamepad).
  2. Logic - You'll need to handle events in your game using variables and logical statements (if, while, for, etc.).
  3. Output - You'll need to show the the results of what's happening in the game by displaying text and artwork, playing music, etc.
  4. Repeat. Everything happens in a loop until the player closes the game. So the game will continue accepting input, evaluating logical statements, and drawing/playing music/moving NPCs around/etc. until that happens.

Everything else is just a breakdown of these concepts.

My current knowledge base is built upon information I found here and there over time. The thing is, I didn't know what I was looking for when I first started. So it took me a while to fully understand the most basic concepts of how a game works, and how programs work in general. During this process, I was constantly told to start with a clone of something else, or start with a text-based game; but what I really needed to do was start learning about what makes a game work. If you know that you need to get input, handle logic, and display feedback with output, then it doesn't matter whether your first game is large or small. All you have to do is search for how to get input, how to handle logical statements, and how to output art/text/music...then put it all together with everything you've learned. It's amazing how the things that seem obvious to me now were so obscure to me before.

As a side note, I used the link above as a doorway into programming.

On Rye

Datamancer
Datamancer

Listen to her. She knows what she's talking about.

lol

That is the internet for you... Rule #37... the power of avatar images and game avatars. smile.png

Right. I'm still amazed how many people (even staff) keep mistaking L. Spiro for girl, even though he's explained the story behind that sketch he drew multiple times.

Btw, to the person who just rated down that comment... Not to be a jerk, but FYI, given the above statement, please don't get it twisted. I should have known that someone wouldn't catch the reference, and probably go "zomg misogyny"! Or maybe I just wrecked someone's fantasy about L. Spiro being a girl. smile.png

Shogun.

Ha +1 for this. Spiro is a dude.

"The code you write when you learn a new language is shit.
You either already know that and you are wise, or you don’t realize it for many years and you are an idiot. Either way, your learning code is ob

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.