Game designers? Anybody?
I've been planning to start work on an RTS game of my own, and I;m wondering if anyone has any useful tips.

Here's what I got so far:
1. Play a variety of games to see what's already out there.
2. When you play, see the why and how of the experience.
3. Try to understand how the game mechanics fit together.
4. KNOW A PROGRAMMING LANGUAGE!!! It's an indie dev's life blood!
5. Bug test, stress test, idiot test. (other games as well as your own)

I'll update this list as people post ideas. Who knows, this list could actually go somewhere.
The ballad of the Beowulf bard

Though I'm from the overworld, I'm here to have some fun.
Once I've settled in here, The fun will have begun.
I'll play my music loudly, And be sure that all can hear.
I'll happily stay here a while, So long as you've got beer.:P
What language are you looking to program in?

If you haven't decided yet, my suggestion would be an object oriented language, so that way you can develop as much of your code to be reusable as possible by doing a modular design to your game.

The place to start would probably be with the base engine you want your game to run on, either finding an off the shelf engine that works for you or designing your own. If you do this part right, you should have a good base of reusable code as a starting point for other games in the engine itself.
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
I already know that I need an object oriented language, Java or C would work but I don't know either of those...

I'm looking to create a tile/block based game with a legend of Zelda feel to it. In other words, I've got my work cut out for me.

I know how a computer thinks, I just don't know how to code or program. That's been my main obstacle, but it's also entirely my own fault for not sitting down to learn a programming language yet. I have access to Game maker (an old version of it) and the Unity game engine, but I have no idea how to use either of them. And again, I can't code or program yet.
The ballad of the Beowulf bard

Though I'm from the overworld, I'm here to have some fun.
Once I've settled in here, The fun will have begun.
I'll play my music loudly, And be sure that all can hear.
I'll happily stay here a while, So long as you've got beer.:P
I think if you don't know any language I think gamemaker is a good thing to start but I don't think it is something to put games far and releasing it. Big Grin

Java is more easy than C but the program to write C in (visual studio) is more user friendly than the program where you write Java in (eclipe). I préfere C and I think it's more easy to learn Big Grin
Pyramid of Live
[Image: kEbemdH.png]
Ok, there are tons of options for a language or platform. Here is my advice. Or, you can skip to the bottom where I sum up all this gibber-gabber - go to *** Read Here. ***

First Steps
  • Understand your first attempts will SUCK!
    • Don't get discouraged
      • If you understand you will fall off your bicycle before you learn to win a BMX race, it makes getting back up easier.
      • Be realisitic in your first steps
    • Develop in Increments
      • Develop some apps to learn a few basics - the below are just examples
        • Calculator
        • File Viewer
        • Widows Registry key writer/deleter - BE VERY CAUTIOUS
        • Text file writer/deleter
  • Plan on making your game in small pieces
    • A Menu System (New, Load, Options (Full Screen/Windowed mode and Resolution), Credits, Exit
    • Display 2D map
    • Create GUI
    • Display units as sprites on screen - this means creating or finding some you can use
    • Make the GUI have an option to create more units - no production queues yet, but make the units take a few seconds to appear (this will require a loop/formula you can later modify)
    • Error logging .. BE VERBOSE!
    • Learn to LOVE comments. Use them and use them more.
  • The above is an example
    • Proceed at your own pace
    • Break large goals into small chunks
    • Accomplish small things
    • A castle is built one brick at a time
    • Lay a foundation first
    • Understand this - each of the above may take a month of weekends to complete, but it will get better and you will get faster
Next Steps
  • Figure out how to break complex logic into small pieces - like make units attack other units
    • Figure out pathing
    • Create some barriers on your map
    • Redo pathing
    • What does right click mean?
    • etc.
  • Keep adding small things like the above
    • One at a time
    • Have a plan
    • Stick to your plan

  • Realize that everything you have done to this point may need to be rewritten.
    • It's ok, it means you are understanding more about the complexities it will take
    • You'll probably rewrite a lot of what you rewrote already .. it happens

The best thing I was ever taught about programming can be summed up in one sentence: "The sooner you start the longer it takes." My teacher was meaning the sooner you start coding, the longer it will take to finish your project. He taught us to make an outline either on paper or in code (comments). The outline can be simple or complex. It doesn't matter, you will get rough ideas of what to accomplish next and sort through your complex and brainy ideas. They need to be written down to be accomplished in an ordered fashion. I once read that Stephen King makes himself write (it doesn't matter what) just to get started. You will come upon days when you will have to make yourself code .. do it. Don't get distracted by fixing this or that. Write it down and put it on the list where it needs to be. Accomplish it when it is due. The second best thing I could tell you: KISS - Keep It Simple Stupid.

As for language you have never had more to choose from than right now. A game can be programmed in Flash, HTML5, C++, C#, Basic, Visual Basic, Python, Cobol, etc. ... even Excel. Learning and coding in a language is a good way to start, but it has a steeper learning curve than doing it in a Platform/Engine. A standalone language gives the freedom to do whatever you can imagine, but once you step out on the ledge, you might be alone. A Platform/Engine comes with a community. Yes, each language has a HUGE community full of advanced devs that can help you a bunch. Finding which language is right for you is going to be based on what you want (Browser Game, Android, iPhone, PC, Linux, Apple, etc.) and your ability to learn it. Read the next section for some more learning info.

I would suggest not so much a language but a platform/engine. Choosing an engine/platform narrows done your choices some .. but not much. Anything to get you started is great and will teach you basics. Speaking of teaching you the basics just for fun .. not for profit or grand design learning .. check out Scratch and Snap .. fun and if you know absolutely nothing about programming it will be fairly informative .. and it's a bit fun. They are drag and drop programming languages built by MIT and Berkley. They are meant to teach noobs (mainly children) the very basics of game logic without having to know ANYTHING!! Very cool stuff. Also, once you get done playing there (I still play with those) head on over to Game Institute. For $199 you can get a huge education. I even saw in their forums that some colleges are using their info and those kids paid a couple grand for it. You get lesson plans, tests, homework, chat sessions, forums filled with helpful people and a game engine to use in your game. You can print out all the material on day one and study at your own pace. Honestly, it's a pretty good deal, but your mileage may vary. If that doesn't float your boat, try Dark Basic. Of course, my favorite platform/engine would be Unity.

Unity has a huge following and there are tons of great tutorial vids out there. The YouTube channel I linked to may not be 'great', but they are good. The downside to Unity .. HUGE cost. They have really priced it out of small Indie devs grasp. It starts at $1500. Recently they introduced a monthy payment plan, $75 a month. Not too shabby and still in the reach of serious development Indie devs. The great thing about Unity is that is has a fully functional physics engine, animation engine, exports to EVERY platform except my car stereo (at an additional cost) and is currently being used by big budget studios to make games. Here is an example of an RTS game made in Unity. I know the price is out of most single devs' range, but (and don't tell anyone I said this) it is out there for download on Torrents. You can always learn and then pay later when you have the funds. Also, you can use Java or C++ inside Unity for the scripts and code .. you can mix and match them.

*** Read Here ***
Ok, to make a long story short (is it too late for that?):
  • Make a plan
  • Make your plan small and manageable
  • Debug logging .. be VERBOSE
  • Comment, Comment, Comment .. then Comment some more. It will save your bacon.
  • Proceed step by step along a path to a short goal
  • Don't get distracted. Add the issue to your list of goals and work it in order.
  • Complete small goals to reach a large goal
  • A Language gives you indepence
  • A Platform/Engine gives you speed and ease
  • Be ready to redo everything in the future because you will have a better understanding of it
[insert witty text here]
That is very good advice RK.

Another thing that really helped me to understand how programming works was when I studied discrete math. The term sound intimidating, but the part on logic is well worth it. You should be able to find info about logic online to get yourself started there and you will much better understand the areas where you need it to determine what among 2 or more possibilities happens, or when to stop a loop and basic things like that that can trip up even a veteran programmer who doesn't have a basic understanding of logic.

this is even very useful when working with an pre-built engine. If you're looking for a good engine to start out in and get a completed game out and get practice at doing some basic scripting code, a good engine to try would be RPG MakerI've played a number of games made on that engine and it produces some great GBC-era style games, tile based and of a similar look and feel to Japanese RPGs of the Zelda era you're talking about.

Also, it would be a good idea to look up the term Pseudo-code. I'll give you a short idea of what that is now but I'd recomend you find a more detailed description yourself.

Basically Pseudo-code is writing a list of instructions you want a program to do in a structured form of plain English, which you can later translate into any programming language. This is a great way of giving yourself the outlines that RK was talking about.

Again though, learning about logic and how TRUE/FALSE statements work is very helpful to any sort of game designing you do, whether it's from scratch in a programing language or using a ready-made engine and toolkit to design your game in, you'll have a better idea of how the computer makes its decisions and how to get the events to occur the way you want them to with less need to debug errors. You will still have your share of errors to debug though, but this does limit them quite a bit.

There's a lot to learn, but as RK said, it's doable if you start small and work your way up to the big stuff.

That's one of the 3 biggest barriers to learning in my experience, trying to learn at too steep a gradient. Also, get used to doing diagrams of your ideas as well, as that can also be a very useful way of outlining your ideas and getting a visual representation of how events should flow. That also solves another of the main barriers to learning, an absence of a physical representation of what you want to learn.

The 3rd barrier is the misunderstood word: have you ever read a page, got to the end and realized you couldn't remember a thing you read? That's what happens when you read a word you didn't fully or correctly understand, you lose the sense of what you're reading and since you don't understand it anymore you can't remember it. If you're studying any of this and experience that, or find yourself losing interest in learning how to program and design games, go back to whatever you were reading just before that happened and start looking words up in the last sentence you read before going blank or losing interest and start looking words up in a dictionary, if the definitions themselves contain words you don't fully understand look those up too, and use each word and each different definition for a work that has more then one in a few sentences until you're confident you know what the word means and can use it properly. Then resume reading and you'll undoubtedly find your now remembering what you're reading and your interest in it is back.
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
I think these are good advices, the ting about forums is that I don't like to read so this is to long for me and things like this I skip Wink I'm sorry
Pyramid of Live
[Image: kEbemdH.png]
One more thing to add, don't get into any hype about which is better or faster or anything. I have heard and read where people argue about who is the most 'real' coder due to the language or interface they use. That's all crap. If you are making something from nothing and you are doing that with code .. you're a real coder.

I once read a thread where several people were arguing about how awesome they were because they used less and less powerful IDE's (Integrated Development Interface) and harder and harder to understand code. Finally, one guy said he was doing all his programs in assembly in DOS edit. Every one shutup for a few days. Another guy came along and told him he was making it way too easy on himself. Guy number two only programmed in binary using edlin.

Back in the day edlin allowed you to directly edit a binary file line by line directly into machine code so no compiling was needed. Well, no one could top that guy. He may be the only pure coder in the world, but his development cycle must be agonizing.

So, don't get into any of that garbage. Learn any language, make something and keep coding. Find what suits you and never look back.
[insert witty text here]
(02-02-2014, 03:38 PM)Rikus Khan Wrote: If you are making something from nothing and you are doing that with code .. you're a real coder.
So true !!
Pyramid of Live
[Image: kEbemdH.png]
An explosion of awesome advice later;

I have a copy of Unity basic, the free version, and also Game maker 8. I think that's the right version a least...
Game maker has taught me the basic logic, but I've only touched the surface of what it can do; and unity gives me a minor case of vertigo...

I want to find an object oriented language that I can pick up fast and has the versatility to make a strong game.
My problem with learning to code is that I'm a very visual learner and just reading about or watching someone code doesn't help me out much... It really made it hard for me to learn math, just to give some idea on what I mean.
The ballad of the Beowulf bard

Though I'm from the overworld, I'm here to have some fun.
Once I've settled in here, The fun will have begun.
I'll play my music loudly, And be sure that all can hear.
I'll happily stay here a while, So long as you've got beer.:P
(02-02-2014, 03:38 PM)Rikus Khan Wrote: One more thing to add, don't get into any hype about which is better or faster or anything. I have heard and read where people argue about who is the most 'real' coder due to the language or interface they use. That's all crap
That kind of crap usually just starts because some people can only stop activities and so start such retarded debates to retard everyone else's creativity so the real coding stops.

The rest of what RK said in that post is excellent advice. The people who just want you to stop doing what you're doing aren't worth your time. Nor are those who just want to diminish what you're doing, give your reasons why it's not good enough or why your not good enough, they too just want to you stop.

Those who truly want to help you will offer you constructive ways to get better at what you're doing, or make whatever it is you're dong better.

@drak: sounds like you've already experienced that 2nd barrier to learning that I mentioned in my post above. When you're learning code, math or whatever, try drawing diagrams or using things sitting around to demo it physically, that should help, especially with the more abstract and conceptual subjects. Sounds like diagramming your ideas before coding them would also be a good idea if you work more visually.
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!
So how are things coming along?
[Image: 11619898803_7d3a89e6bd_n.jpg]
The Golden One!

Forum Jump:

Users browsing this thread: 1 Guest(s)