Lostcast Episode 101: Game Dev 101


  • Patron

    My first serious programming attempt was an online game. The game was an MMORPG, though that term is a bit misleading. It was just basically text and graphics and forms that flipped bits in a database.

    My “hook” to make the game interesting was the time/day system I developed. Essentially, players set up their movements, and I would increment the day through a CRON task. The cron script was a big task that executed all the moves from the day before and posted the results and updated player stats.

    I eventually scrapped the game because it was simply boring. I learned A LOT from that project though. A year later, I attempted version 2.0. It was better, looked nicer, and it even featured in-game messaging system. It had a story to go with it too. Still, I scrapped that one too. It was still a boring game.

    I’ve probably scrapped 80% of my projects over the years. It happens less often now. I’m far more likely to actually publish my projects now. I am a much better developer than I was 10 years ago
    .


  • LDG

    Interesting read! A year or two before LDG I made a little hack called Valadria which was kinda like you’re saying, technically an MMORPG but basically just a little web game ;) I made the classic mistake of focusing on the tech instead of any thread of an actual game, so I spent lots of time with python (??), Google authentication, database crap, FFS…! All this and zero value to any gamer.

    Love the focus on shipping and improving, they are what makes for a better developer.


  • Patron

    That time you spent on tech is not wasted. You learned from it. I am of the opinion any time spent developing is not totally wasted.

    Here is a snapshot of version 1.0 of my very first game attempt using the very first domain I ever bought 10 years ago:
    https://web.archive.org/web/20040830215244/http://gamecarrot.com/

    Looking back, it is laughably bad. It has more holes than Swiss cheese. I was simultaneously learning PHP, MySQL, JavaScript, basic HTML – everything – I was starting from ground zero with that game. It was bad, but I learned from it.

    This particular podcast episode focused on newbies getting in to game development. Both @richtaur and @geoffb emphasized this point I also want to reiterate: Everybody needs to start somewhere. The results of your 1st attempt will likely be garbage.


  • Patron

    So… this episode was good and all but… You should have released it like 2-3 years ago. It would have been very helpful for past Josh.

    Right now I’m interested in the logistics involved in making your first big project.

    How do you know what to do next? How do you keep your codebase clean? Most importantly, how do you keep motivated after staring at the same bugs for months?


  • Patron

    @Josue said:

    How do you know what to do next? How do you keep your codebase clean? Most importantly, how do you keep motivated after staring at the same bugs for months?

    -Users don’t care about codebase. Refactoring, cleaning cruft, etc. is only for your benefit. Whatever works for you is the best way to do it. You can burn hours just debating code style and tech stacks (Example: Lostcast).

    -Publishing something, even if it sucks, and getting feedback is the best motivator. It also keeps you focused on what really matters. We nerds have different ideas on what is important than what the user thinks.


  • Patron

    @dannagle said:

    -Users don’t care about codebase. Refactoring, cleaning cruft, etc. is only for your benefit.

    But when should you start optimizing stuff?

    How much cruft is too much?

    -Publishing something, even if it sucks, and getting feedback is the best motivator. It also keeps you focused on what really matters.

    As I mentioned on Episode 100’s thread, various successful indie devs say they do what they do because they need to, because they enjoy the process of creating games, because that’s just who they are, and I believe that should be everyone’s goal.

    Your motivation probably shouldn’t be dependent on releasing things or on what people think about it.

    That’s what I’m looking to get: self-motivation. Having fun with myself failing.

    P.S: Also, when developing a big/long project, you’re probably not gonna be releasing an alpha build every week (unless you’re LDG). How do you get motivation in the absence of feedback?


  • LDG

    Good topic idea, we’ll talk about that in a future ep!


  • Patron

    @Josue said:

    How much cruft is too much?

    When you start to spend more time working around the shortcomings of your tools / code than doing real actual development, then you need to start optimizing.

    For example, a very common toolchain optimization is your release process. Packaging an installer to give away is usually a fairly involved multi-step process that must be done accurately. This is a task that should be very heavily automated. Ideally, it is optimized to the point where you just click a button --> out pops a ready installer. You may even want to have it automatically tag your source control, uploaded to your web site, and even spit out a template for your email announcement. Just look how much time you now saved! You can now have releases far more often.

    Your motivation probably shouldn’t be dependent on releasing things or on what people think about it.

    Programming just to scratch your own itch is great. It is good a reason to write code, and I’ve done that several times. Unfortunately, I must care what other people think about my software because that is how I pay my bills.

    That’s what I’m looking to get: self-motivation.

    Self-motivation is a tough topic that has generated piles of books. My recommendation: Work on a project you care about. Pick one that personally interests you a lot. That will keep you motivated. If I knew the secret to endless self-motivation, I would be retired already.

    P.S: Also, when developing a big/long project, you’re probably not gonna be releasing an alpha build every week (unless you’re LDG). How do you get motivation in the absence of feedback?

    An optimized build process could easily release an alpha every week. It is common for some projects to have automatic nightly builds ( https://nightly.mozilla.org/ ).

    Big serious projects usually have multiple people working on them. You go ask your business partner for a comment. A one-person indie shop has to search for feedback. Once you have a semi-functional prototype, you can post an alpha build to forums, Twitter, email your friends, etc.


  • Patron

    @dannagle said:

    When you start to spend more time working around the shortcomings of your tools / code than doing real actual development, then you need to start optimizing.

    Makes sense…

    But that’s something kinda hard to mesure, isn’t it?

    Unfortunately, I must care what other people think about my software because that is how I pay my bills.

    Yeah, I’m not saying that you shouldn’t care, just saying that it shouldn’t be your motivator.

    The first example that comes to mind is Vlambeer. Those guys just do what they love, what they feel like doing, and it just so happens that people like what they do. Of course they care about what people think about their games and of course they develop their games for an audience, but their motivation doesn’t come just from pleasing their fans.

    Oh, I should note that I’m talking about hobby projects here, so, commercial success isn’t that important.

    My recommendation: Work on a project you care about. Pick one that personally interests you a lot.

    My problem is that what interests me changes so drastically and quickly!

    I generally feel very motivated by the very beggining of a project, but get quickly demotivated when I stumble at an issue.

    If I knew the secret to endless self-motivation, I would be retired already.

    LOL

    An optimized build process could easily release an alpha every week. It is common for some projects to have automatic nightly builds ( https://nightly.mozilla.org/ ).

    Sure! If I was developing a game right now, I could post daily builds on the forum, thanks to the powers of the web. That’s not the point.

    A lot of times you just won’t have anything new to show, so, why would you make a test build of that?

    A one-person indie shop has to search for feedback. Once you have a semi-functional prototype, you can post an alpha build to forums, Twitter, email your friends, etc.

    I know we shouldn’t judge the average one-person indie shop by exceptions, but… Screw that!

    Pixel!

    He spent 5 years developing Cave Story “blindly”! The Tigsource forums didn’t even exist!

    How’s that even possible?


  • LDG

    The projects that suffer from motivation issues the least are the ones where you HAVE to make it. There’s a project that’s just so itchy, you must work on it, no choice. Many people get that, but I think the key is to somehow convince yourself that “I must work on this” should be converted to “I must SHIP this” then you’ll be better equipped for the long marathon ahead of you.

    One of the ways I focus on shipping is by thinking about creativity as a gift meant to belong to the world. Humans are short-lived, but our work can spread through time and have deep, positive impacts on humanity.

    If you feel compelled to create, but you are unable to finish it, and share it with the world, then the world isn’t the better. YOU might be better, having gained experience and answered your own questions, but unless you use that new knowledge to ship something, it still doesn’t make the world any better. So to me, I like my creative work to eventually have a point, and that point is to entertain and delight people. Lotta excellent ways to do that but I think games are the coooolest ;)

    Lastly, if you find trouble taking projects to completion, work on smaller projects! You regularly finish songs on YouTube etc. so you just need projects of about that size. Even games can be tiny projects (2 day game jams! etc.)!

    SHIP ITTTTTTTT


  • Tiger Hat

    Thanks for the advice in this one guys :)

    Made me think that the game that I’ve got sitting in my head doesn’t need to have isometric tiles or fancy animations - if I can strip away these things and the game is still interesting then I can start thinking about adding those things in for the sequel ;-)

    Also, it made me realise the positivity around some of my other projects, which to me don’t look like much - just code sample, really, but they have helped me solve a problem that I needed to solve. I can use them and the knowledge gained writing them again and again.

    Plus, I have already got two jobs where as part of the interview I have been able to show some of the code on my website, which would have undoubtedly helped my interviewer understand how I work and think.



  • Thanks for making this one! I’ve been planning to make a game for a while and I’m getting started now.


Log in to reply