Game Dev Blog #12: Game and course complete!

This entry is part 13 of 13 in the series EDX CS50G Game Dev Course Final Project

I submitted my final project, “Cave Descent” and I’m pleased to say the project has received a pass grade, meaning I have completed the CS50 “The Introduction to Game Development” course from Harvard!

Here’s the (5 minute) video submission that I had to make in support of the code. I was also required to create an extensive readme.md to provide evidence of the game’s complexity.

I probably went overboard in terms of the detail, but the project requirements said I needed to submit something I’d be proud of. I don’t need a second invitation to write War and Peace, so…

It covered:

  • Project specification – A checklist confirming I’ve addressed each of the requirements.
  • Conceptualisation – My original vision and a summary of how I used The MDA Framework, The Bartle taxonomy, and Quantic Foundry’s Player motivation model to further understand why my original vision could be fun and what features might enhance that.
  • Prototyping and prototype playtesting results – The initial concept and abandoned experiments.
  • Technical Design Decisions – High level decisions about the game’s architecture.
  • Components and reusability – Examples of components I made to be reusable in other projects.
  • File structure – The rest of the project showing separation of concerns.
  • Scene, player and enemy states – Details on behaviour and transitions to other states.
  • Lessons learnt – Mostly things I’ve previously mentioned in earlier dev blog posts.
  • Future improvements – Basically reiterating which prototype features I’d want to re-introduce, and what else I would want to add to build on the original vision from the conceptualisation stage.
  • Credits – Listing all the assets and libraries used, and thankyous to playtesters, course staff and other course students.

Would I do anything differently?

Probably not. I think my approach was solid enough. I defined my vision, brainstormed some ideas, prioritised what I needed to prototype, and was pragmatic about what I could build based on the time available. I think I made the right choice in picking Love2D rather than Unity for this specific project.

I could have spent more time adding more features, but I was concerned I might make a mistake in the submission process, so I aimed for a simpler submission that could be graded earlier in case I needed to correct anything before the final deadline of June 30th. As it turned out, after submitting my work on 14th June the work was graded on the 24th, so I had an extra 10 days I could have used to add more, but I wasn’t to know this.

If the code I was writing was purely just for the course I wouldn’t have considered component reusability in my approach which would have saved some effort and given me time to add more fun stuff, but I was fairly confident that what I’d done was good enough for the pass.

Next Steps!

The course is done, I have the certificate, and as I’ve been mentioning in previous previous blogs the intention is to take the code base and revisit level generation prototyping again. If the prototyping shows potential, the plan is to turn it into a released game.

I also have some other game ideas I’d like to work on. EIther way, there’ll be updates and links in the future, so keep an eye out.

The course: A final review

Harvard’s CS50 “Introduction to Game Development” course is a few years old now, and as such it’s being retired in less than a week, presumably because the Unity projects and techniques are now becoming outdated and hard to support. But I think it’s been worth taking despite it being close to ending. I should point out that the materials will still be available to watch and download, and attempt the projects, though you won’t be able to get grades for them.

Love2D, while not hugely common, was still an interesting framework in which to learn some common game dev approaches, including finite state machines and AABB collision detection, that will translate into other game dev environments. The course didn’t spend too much time on Unity in comparison, but gave enough detail to cover the basics.

The biggest gap for me was that the final project required students to make a game from scratch (in Love2D or Unity), but the course doesn’t really prepare students to understand what that might mean in practice. I felt it could have done more to introduce students to the process of taking an initial idea, prototyping it and developing it, before expecting them to make their own. I still consider this to be an important part of teaching “game development”. I could imagine a number of students might fail the final project because they tried to make something too complex and didn’t know how tro salvage it in time. My own (non-gaming) developer experience with agile software building was helpful here, but I also felt that the “introduction to game design” course I took alongside this one provided some additional advice that might have been helpful to less experienced developers.

Hopefully whatever they replace this course with – at the time of writing there is nothing announced – will address that gap. I also wonder if there’s value in comparing other types of engines and frameworks, like godot, game maker, etc. They don’t need to go in depth, but enough to demonstrate shared concepts, etc.

All in all, that’s the second course I’ve studied via edx.org, and I’ve enjoyed both of them. I hope to do more, perhaps in psychology, or more game dev related courses, but they may have to wait. I’ve got games to make!

Series Navigation<< Game Dev Blog #11: The Pareto Principle

category:

Game Development

Tags:

No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *

Series

Recent posts

Categories

Latest Comments