100 programming challenges

Discussion in 'Game Design, Development And Publishing' started by Shusaku, Sep 9, 2019.

  1. Shusaku

    Shusaku Member

    Joined:
    Sep 9, 2019
    Posts:
    2
    Hi everyone, this is my first post so first I want to say excited to be joining this community! I just purchased gamemaker and love the interface and structure it provides for creating games. I'm a professional new media artist (working in c++/openframeworks, python, Max/MSP/Jitter), so seeing interactive software made in this way has been quite exciting.

    Yet since I started a couple weeks ago I've been trouble finding the right place to start. I've done a few online tutorials, but as someone who has over a decade of experience in writing software, I know that this format of learning is quite slow moving for me. The syntax is familiar and simple, so that hasn't been an issue. But I'm used to learning programming frameworks through the introduction of objects and functions, and then proceeding with a series of challenges. This usually allows me to get a sizeable overview of what is possible, and I can begin experimenting/creating/jamming from there.

    Which brings me to my question: has anyone checked out Ben Tyre's GMS 100 Programming Challenges? It seems like just what I'm looking for: a bunch of challenges to solve, that tell you ahead of time what functions you will need to solve them.

    Yet I also know that computer science literature can often be a junk mill, with volumes produced by authors who aren't authorities on the subject, by publishers who are only interesting in profit (this one is made by a branch of Springer, which has me very skeptical from the get-go).

    Is anyone familiar with any other resources that might have a similar method to teaching GMS?

    Thanks for the help!
     
  2. FrostyCat

    FrostyCat Member

    Joined:
    Jun 26, 2016
    Posts:
    4,451
    I'll tell you from the get-go that most books written on GML are by designers, not dedicated programmers. As someone with a bachelor's degree in computer science (which most of the authors don't have), I feel too many of them lack technical rigour and coverage of basics. You may still find them useful in showing you design elements, but the texts you used for learning C++ for instance may be stronger picks for actually mastering the language. One persistent problem is that if you learn only from designers, you'll get stuck on anything that doesn't explicitly show through a screen or a speaker.

    And yes, I have seen that book you mentioned, in fact I was one of the reviewers. It is exactly as I said --- the book is filled with practice problems for implementing visual aspects of development (e.g. menus, graphical elements/animations, certain minigames, etc.). You will learn action-driven GML, and that's important. But you won't learn enough data-driven GML or basic syntax to be truly independent. For data-driven GML, you will probably be better served adapting practice problems from C++ or Python resources into GML. They care about the abstract aspect of coding, most GML resources don't.

    The current situation with mainstream GML education has a huge issue with designers having too much voice in teaching code, and actual programmers having too little. I'm disheartened that most GML novices can do a platformer but can't even loop through an array, but not one bit surprised.
     
  3. Tsa05

    Tsa05 Member

    Joined:
    Jun 21, 2016
    Posts:
    555
    https://www.amazon.com/Artificial-Intelligence-Games-Ian-Millington/dp/0123747317

    Most of the foundation concepts are in there, presented in a "designing game" strategy. The code examples included on CD are not likely to be helpful, as they are C++ code and typically bogged down a bit by the structure of getting things squared away for the C++ compiler. The text of the book, however, is dominated by process diagrams, psuedocode, figures illustrating the state of a game's logic throughout a process, and explanations with analogies.

    The latter chapters expand further into optimizations and tool chains that get more compiler-specific, but there's still a good 90% of the book dedicated to every strategy in existence for making games. I have the first edition, which came out the year I finished college, but I imagine the second edition is even more complete.
     
    Yal, RujiK, Shusaku and 1 other person like this.
  4. YellowAfterlife

    YellowAfterlife ᴏɴʟɪɴᴇ ᴍᴜʟᴛɪᴘʟᴀʏᴇʀ Forum Staff Moderator

    Joined:
    Apr 21, 2016
    Posts:
    2,381
    It is hard to say about this (2017) book, but the author's later (2018) book received mixed reviews, mostly pointing out overall lower-than-expected quality of the book.

    Here are some "list of things to try out" links from my old bookmarks:
    The "Invent with Python" Blog — “I Need Practice Programming”: 49 Ideas for Game Clones to Code
    Three Hundred :: Three Hundred Mechanics
    Old Game, New Twist: A Great Way to Practice Your Gamedev Skills - Tuts+
    A big collection of old titles on Internet Archive
    (... unfortunately, most others seem to be dead by now - been too long)
     
    Yal, Shusaku and ParodyKnaveBob like this.
  5. Shusaku

    Shusaku Member

    Joined:
    Sep 9, 2019
    Posts:
    2
    Thanks for this detailed response, it exactly answers the questions I had. Considering my goal now is to get a general working knowledge of the various functions in GML, I think I'll give the book a try. I'll come back and post a review here if anyone is interested!

    Thanks @YellowAfterlife & @Tsa05 for your helpful tips as well, the AI book looks like a great resource and these links seem really helpful.
     
  6. Yal

    Yal GMC Memer GMC Elder

    Joined:
    Jun 20, 2016
    Posts:
    3,556
    I still almost exclusively use arrays unless I specifically need priority sorting or stack/queue behavior, so I'd say mastering arrays is the most important programming thing to learn in GM. Once you have your data in an array, you can use loops on it, which makes everything more simple (by making you repeat yourself less). There's this saying "Keep it simple, stupid" - lots of programmer write "cool" code that just implodes under its own weight sooner or later instead of keeping things simple and manageable, and while it's cool to learn new stuff, don't forget that a lot of the boring ol' basics are fundamental concepts for a reason.
     
    Shusaku and SnotWaffle Studios like this.

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice