In a few weeks I’m going to be doing a presentation on 2D game implementation in Unity, and I’d like to run my plans past you. Nothing here is set in stone, so feel free to suggest changes to any aspect you think ought to be different.
Currently my plan is to use checkers as the example game. I’ll put the game together, and make the assets (art, scripts, etc.) available prior to the event, so that people have them when they arrive. The presenter at a previous meeting did this, and it worked very well; most of the attendees downloaded the assets in advance, and having them already in place enabled everyone to hit the ground running.
The presentation itself will have three major areas:
- Setting up a 2D game board. This has a practical and a theoretical component. Practically, we’ll cover some basic things like getting sprites into the IDE and instantiating a board at runtime, along with some notes on areas where I’ve tripped up so that others can learn from my mistakes. 😉 From a theoretical perspective, we’ll discuss how Unity doesn’t have the notion of space-by-space movement, as is common in board games–and how work at this stage can enable one to set that up.
- Movement in 2D. Mostly practical, this will focus on Unity’s 2D physics tools and how they can be used to do things like check for open spaces and opposing pieces. I’m also planning a (very) brief discussion of other approaches, like using multidimensional arrays to track what’s in what location.
- Rules enforcement. Here the discussion becomes more theoretical, talking about different ways to do things like keep track of turn order. We’ll use the pre-made scripts as examples.
If you were attending this sort of presentation, would all three of those topics interest you? Does one of them interest you more, or less, than the others? Are there things I’m not planning to talk about that you think I should?
Sounds like a super interesting talk, I would love to attend (: If you end up making slides and can share them, let me know.
To give best feedback I would need to know who the audience is. Do they know game programming, or programming in general, or are they just into board games? Do they have any experience with Unity?
Just given what I know I’ll try to comment anyway.
– Give an overview of what Unity is and what it’s basic features are. If you have time briefly mention other competing platforms. Also maybe show or tell examples of professional games that use this.
– In your sample stuff I would provide a full sample program that implements a 2D checkers game, or some other game if that is easier
– Rules enforcement sounds like one of the most interesting parts to me. This includes the game engine which does the logic, which is where I always spend the most time when writing games (and I’ve done quite a few). I haven’t used Unity, though in addition to using the pre-made scripts I would write your own from scratch, or change one of the pre-made ones to do something special. I am not sure how Unity supports state machines, but I think those are important for many types of games.
– Talk about communities (online or otherwise) where you can find people to testdrive your games.
Thanks for your thoughts! This is exactly the kind of feedback I’m looking for.
I would tell you about the audience if there was only one. 😉 The people at the meeting can be expected to range from professional video game developers to hobbyists curious about what goes into making a game. Part of the reason why I’m planning to discuss a lot of theory is because I’m hoping that will be useful to both of those groups and all those in between; a focus on coding proper wouldn’t be.
I’ll definitely point out some professional games, as well as including a full checkers game. The checkers implementation is actually sitting on my hard drive now, with the code thoroughly commented so that it can be used as a simple reference.
I agree about game logic and how demanding it is to get working. My plan is to demonstrate a simple approach with checkers, and then to use the case study to show an alternative, more elaborate setup.
Pointing out communities where playtesters are available is a great idea. I’ll absolutely work that in.
Thanks again. If there end up being slides, I’ll make them available. 🙂