Keeping your game community up to date
Joker's guide to development part 3

Starting from scratch? What else?

When you’ve got an idea for something, it’s most likely to have originated from one of your currently most favorite games, gamemodes or mods. There’s something in one of these just… missing or just plain wrong, so that you start to think that you (and you alone) know for sure you can do better. This is awesome! Your idea, your change is something to you that you can get very excited about! – This is the final part of Joker’s guide to development Part1 Part2

Requirements

  • A computer
  • An internet browser
  • An internet connection

Learning goals

  • What to think about before deciding whether to write from scratch or modify.

Let’s go, go, goooo!

The danger with an exciting idea is that you will want it to be just yours and you want it to be perfect from the start… When you’re a beginning programmer though, I want to persuade you to get those two feelings out of your head right-away! Don’t feel like it should be just yours; there’s been put a lot of work in what you’ve been playing (a lot more than you think right now) and starting over from scratch is going to be a very slow and frustrating ride! In addition to that, perfection isn’t something you should be aiming for when you’re just starting with development. It’s about you learning different things about the world of development. Whilst you are developing you’re gaining more and more knowledge and experience, making you the more perfect person to eventually make that awesome, unique and from-scratch thing you want to make. But until you feel like you’ve reached that point you should just expand on what others have built. Not only will this be a lot easier and faster, you’ll learn a lot from other people’s code and in most cases come to find your style of code.

For example: I learned to code from looking at other people’s code. There’s been bad code I’ve learned from and there’s been good code that corrected me. Now, I really enjoy a nice looking piece of code. I don’t like a lot of comments and I don’t want code to necessarily be very efficient. I want it to be readable above anything else, like a nice Word document that pretty much anyone will say of: “wow I understand what this means”.

“Keep trying until you have made something awesome!”

You could start your game, gamemode or mod from scratch, but you’ll find that even though the thing you’re trying to recreate (but better) probably took a long time to make! And this is true for most things that have been developed out there; even though it may look simple and the idea may be simple, there has been put a lot of time, work and effort into getting it to where it is.

familiarity

One of the upsides of modifying someone else’s code is that you have a working piece that you (probably) know as a user. You know what the buttons are labeled and you know what the buttons do. This is great because you can search for those buttons in the code, copy them and modify them to do what you want.

For example: if a mod you are editing has a vehicle in it then you will know what it’s called and what messages appear when you ‘spawn’ that vehicle or what the button is called to spawn that vehicle. By copying the relevant code and modifying it you could make another car! You don’t have to worry about clean code or pretty code at this point. You just want to get it to work! Fix the errors and keep trying until you have made something awesome!

Combine

With more extensive mods a lot of the code you need for your ideas may have already been put in the mod. Combining different parts of the code together to make your own unique addition can be a great way to get started with coding. As you’re going along reading and interpreting code you’re learning all the time. Just the action of frequently handling code will give you a better understanding of how it all works. When you’re confused about what a certain function does, you look it up.

So if you find something that you think you can do better: stop for a moment to think if you could perhaps add on to or modify temporarily (until you’ve gained a better understanding of how to code for a certain game).