Martin Grider will share and discuss a few classes he re-uses from project to project allowing him to rapidly flush-out 2D games. The classes themselves are not all that notable, as most developers could probably re-create them in an afternoon, but the techniques are particularly suited to rapidly prototyping turn-based games. He’ll discuss some of his favorite rapid prototyping techniques, as well as talk about “juicing” animations in UIKit, (with a bit of quartz core, as well as a bunch of external libraries thrown in for good measure).
As you can see, if you looked through the slides, I have already used this code in a rather large number of projects in the last two years. I was surprised myself, to be honest. At least 8 projects use this thing, 3 of which are in the app store.
My first Cocoapod
While prepping for the talk, I also turned the project into a Cocoapod. I had played around with cocoapods once before, only long enough to install it and run
pod install on a test project, (a process which is, if anything, too easy!), but actually creating a pod myself was a new experience, and bit more work than I’d expected going into it. Anyway, you can now add
pod 'GenericGameModel' to your projects to try it out for yourself.
Thanks to Bob McCune for running the show and letting me speak!
The GDC Vault has a ton of old Game Developer Conference content. I think they’ve been recording all the sessions (or most of them) for at least a few years now.
Anyway, my talk Usability Lessons from Mobile Board Game Conversions is now available over there. If you follow that link without being logged in, you’ll be able to see the slides (which are also available in my blog post). I’m not sure about the pricing for premium access, but if you had an “all access” pass to GDC, a vault membership is included. Anyway, if you’re logged in, the full video of the talk is available, in a pretty neat player that includes both my talking head, as well as the slides.
I wanted to talk about the Q&A at the end. After I gave the talk, I left feeling like I’d done an okay job with the Q&A, but when I asked my friend August his honest impressions, he essentially said that part was a train wreck. Watching it again, it was worse than my initial impression. I essentially didn’t answer anybody’s questions clearly. Not sure what was going on, but my brain was basically mush. I thought I’d summarize the questions here, and give some “real” answers if I can. I apologize in advance for not having anyone’s names. None of the questioners introduced themselves, and we have no video of them, so I essentially have no idea who asked these questions.
Why no love for Stone Age?
The first question was about why I hadn’t used any example screenshots from the Stone Age conversion. As I said at the time (maybe I did answer at least one question adequately), I had intended to include some screenshots of this, but essentially hadn’t been able to get a screenshot that I liked or that illustrated one of my points well. Another reason is that my talk was originally about twice as long, and I cut a ton of it to fill the 25 minute slot, so there’s that. I’m sure I could also come up with a list of other games I would have liked to include but didn’t. Looking at the folder of async games on my phone, Stone Age and Lost Cities were the only two that I didn’t include.
Board Game Accessibility
The next questioner was essentially asking about comments or best practices for accessibility in board game conversions. I was not prepared to talk about accessibility at all, I rambled a bit about player colors and how it was a good idea, but had no real suggestions. I think accessibility is a HUGE topic, and essentially my mind was boggling with the various ways I could have tried to tackle it on the fly. I think the first and most obvious point is that you should think about your audience. As with usability, you should be intentional about your accessibility, and by that I mean you should spend some time and think about your audience. Then think about how you intend to make it easy for them to play. If it’s important that you help color blind people play your game, you’ll obviously want to do testing to make sure that they can. There are numerous resources available for online accessibility, and a lot of those probably apply to games, but there is at least on site devoted to the topic of video game accessibility. There is also an IGDA SIG (special interest group) devoted to game accessibility. Note that the questioner was asking about how any of this might apply to Board Game Conversions specifically, and unfortunately, I still don’t have a good answer for that.
Watching and commenting on game plays
The next questioner was asking about watching play-throughs (especially of “expert” games), as well as commenting on those games, and wondered if I had any suggestions for how to implement such a thing. In my rambling answer, I mentioned that the Go community highly values this sort of thing, and that there are a few Go apps that do include this sort of thing. (The same is definitely true of Chess, although I’ve seen fewer apps that allow you to comment or add your own comments.)
I guess any practical advice for allowing others to replay and/or watch game replays would probably depend on a lot of factors. Where will it be played? In the application only, or do you also want to capture physical playthroughs? (If you don’t have cross platform, you’re limiting the audience for the replays, and probably not capturing enough of the games that are being played to be seriously meaningful.) But if you allow the games to be viewed outside of the application, (say on a website or better yet by publishing your file format specifications and the gameplay files themselves), then you’re opening up another big can of worms. How long does the game take to play? Will these playthroughs take as long to watch as playing a game? (Ideally, they would not.)
I think a salient point (that of course I failed to make at the time) is that there is a file format specifically for recording games called SGF (Smart Game Format). SGF is used to record quite a number of simple games, but is limited to two-player games. It’s quite commonly used to record Go games, and for a long time I actually thought SGF stood for “Smart Go Format”. I’ve evaluated it once or twice, and essentially found it too confusing to seriously consider implementing. It’s not a human readable format (though it is text and not binary).
Any conversion will already have to think about how best to save the game. Sharing gameplays is as easy (or hard) as sharing that format. But of course, not all formats allow you to re-play the game. I guess I feel like allowing the game to be replayed from the beginning is a feature you should strive for (ideally) anyway, and of course one benefit of that is that it allows the replay to be watched by someone else. Ideally, you’d then build some kind of commenting system on top of the save format, saving the context of the comment (when it occurs) as well. Of course then you have to build an interface for viewing those replays as well as viewing the comments on the replays. Finally, I think it’d be important to have some kind of moderation of the replays. If you simply made all games played *ever* available for viewing, it’d be too hard to find the expert games. You’d probably want to allow the community to rate the replays or otherwise allow your community to filter and/or otherwise determine what replays have value. Eventually you could filter by actual engagement, ie, how many comments does a game have on it, how many times has it been viewed, etc..
Thinking about usability for the system that allows you to watch the replays will be a big deal. (And probably highly dependent on the game itself.)
I clearly do have some interest in this sort of thing. It’s a shame my comments at the time were so inadequate to the topic.
I have to admit that after several listens, I still couldn’t quite understand what the final questioner was asking. He sounded eloquent but I don’t really feel he got his question across. He was asking about examples of “specified language or tools” specific to individual games. At the end he gave the examples of Monopoly or Go, and seemed to be asking how tailoring a conversion for one or the other might be different. I guess my response should probably have been that EVERY game does of course have its specifics, and a general study as I have done will of course not be able to capture the nuances of each game. I guess I feel like all games have a language, or definitions anyway, and one of the first things I do when writing a board game is decide whether I need to include a glossary at the beginning of the rules/instructions. One of our jobs as designers is to shape those rules unambiguously, and attempt to reduce semantic or subjective misunderstandings.
So I mentioned in a previous post that the For The Win app I worked on for Tasty Minstrel Games was removed from the app store, (embarrassingly right before I spoke about it at GDC). When I emailed Michael at TMG, he revealed that it was just not making enough money to justify paying the $99 to apple to keep it there, and he was happy to let me put it back in the app store under my own account.
So I spent some time last Friday and updated it for iOS 7, fixing a few minor cosmetic bugs here and there, finally submitting it around the end of the day.
Long story short, Apple rejected the app, for the following reason: “11.1: Apps that unlock or enable additional features or functionality with mechanisms other than the App Store will be rejected” They clarified with the following statement: “We found your app inappropriately unlocks or enables additional functionality with mechanisms other than the App Store, which is not in compliance with the App Store Review Guidelines. Specifically, your app allows users to unlock avatars by subscribing to a newsletter, following on Twitter, or liking on Facebook.”
Okaaaay… So a couple of reactions: 1. Obviously, this functionality was approved in the original app. But maybe they just didn’t catch it then. And 2. Doesn’t like every 3rd game in the app store do this? I mean, seriously, I see games giving extra currency for FB likes or even just twitter comments ALL THE TIME. Doesn’t candy crush unlock each level pack with Facebook interactions? (Although now that I think about it, those interactions take their friends back into the app, which is maybe how they get around this issue.)
Alright, so my arguments probably amount to “But everybody else does it!” I’ll be making some changes to just give everyone the avatars all the time (and probably re-word the achievements) and upload a new binary… probably sometime later today.
Oh, and by the way, since the app was in the store for about a year, and presumably some people paid for it in that time, I’m just going to put it up again for free. So the folks who downloaded it before can get it again without having to pay. I am considering adding the following functionality in an update: making it Universal, and asynchronous multiplayer. If and when I do that, I’ll probably shout about it some, and then make it paid again.
It’s pretty amazing that it’s been five years today since I had my first app approved.
It’s been a fun ride.
Since I posted last year’s GDC badge, I figured I’d do it again. Be sure to scroll down for some of my thoughts about the conference this year, as well as being a speaker for the first time.
Being a speaker at GDC was definitely a double-edged sword. All bets are off if I get any consulting work out of it, but if you break down how long I spent preparing for my talk, I definitely invested more of my time than the cost of GDC admission. On the other hand, there were certainly less tangible benefits as well. I got to go to the speaker party, for instance, which was really only “valuable” in terms of meeting other speakers and making some industry contacts. I spent quite a while there talking to Chris DeLeon, for example, who runs Hobby Game Dev. (I finally decided to check out his site, and got completely sucked in, btw. Be careful, there’s so much content over there you can easily lose an afternoon!)
A bit about the process of being accepted as a speaker: When my talk was provisionally accepted, the organizers made some suggestions for directions they’d like to see the talk evolve, and made it clear that my acceptance was contingent on those changes. I (of course) had the opportunity to bow out at that point, but chose to work with them and make it the talk they wanted rather than the talk that I’d submitted. I would definitely like to be a speaker again if I have opportunity to present something I’m very passionate about, but that revision process is not something I think I’d like to participate in again, not because it was unpleasant in any way, simply because it really sapped my enthusiasm for speaking. In this case specifically, my talk was initially not so much about usability, and while I think usability is definitely an important aspect of game development, it’s not a topic that I’m super passionate about. If I speak again, I want it to be something I can get fired up about. (Certainly mobile board games are a topic that fits that qualification, but specifically because that aspect of the talk was deemphasized, my enthusiasm also suffered.)
GDC, for me, has always been about soaking in as much of the panels and content as possible. Performance anxiety really put a damper on that goal (certainly on the day of my talk, but it had ripple effects the day before and after) so that definitely felt like another downside. On the other hand the added prestige associated with the speaker ribbon was a definite plus, especially in terms of talking to and meeting people I would not have otherwise.
The other big difference this year was that I attended GDC from the perspective of an igdatc organizer. I went to various meetings and talked to quite a few other chapter organizers from around the world. My take-away from this is that we are doing just the right amount of stuff, I think. There are definitely chapters WAY ahead of us in terms of volunteer effort and event planning, but there are also chapters that put in way more effort and have less events and fewer attendees. Our new Multiplayer Extravaganza series is humming along, and many of us are super excited to create our own local multiplayer games to showcase there.
Finally, the other thing that felt different about this year’s GDC was that there was a lot more opportunity to PLAY there. In addition to the IGF booth (that has existed on the show floor for years AFAIK), as well as the “doing it on the table” (boardgames exhibit that I believe was new as of last year), and GDC Play (which is a paid exhibitor space where you can show off your game), there was also: the Mild Rumpus, Indie Megabooth, alt.ctrl.gdc, and a Killer Queen arcade cabinet randomly positioned near the expo hall entrance. All these were welcome additions, and made for relaxing interludes that definitely helped with that speaker anxiety I previously mentioned.
I feel like this entire week has been “coming down” from GDC. (Which probably explains my high-frequency blog postings.) I definitely feel more energized about game development after this year’s GDC than I felt after last year’s. I don’t think industry events like GDC are required to be a game developer, but if you are developing a game, attending GDC will feel like a giant room full of 24,000 people with whom you already have something in common.
As a sort of follow-up to yesterday’s post on small-grid games, I realized that I haven’t made this pair of games public anywhere yet. (That I remember.) That post led to some Facebook discussion, where we got to talking about hex grids, and I mentioned that I haven’t seen any small hex grid games… but then I realized that I had worked on a design for one on-and-off last year!
Primitives is a relatively simple game where you place a card or one of your makers, or otherwise manipulate the gameboard. (I believe the last rules I playtested said you could do one of those per turn.) Manipulating the board means you could change a single card without a marker already on it, either by moving, rotating, or flipping it. By claiming a card, you “lock” it into place, and subsequently receive points for its symbols (and any matching symbols on adjacent cards) at the end of the game. The point values are dictated by the symbols on the center of the cards, either plus (+1 point) or minus (-1 point). Each card is double-sided, so flipping a card means it will change that symbol from + to -, or vice versa. The game ends when everyone has placed all their markers and all the cards are out on the board. More playtesting is probably needed, but I may need a rule that says something like: “If only one player has markers remaining, they MUST place it on their turn, and if everyone has placed their markers, the only available action is to place a card onto the gameboard.”
The first version was played with standard playing cards in a hex-like configuration. But I realized I could get more symbol matching in there (and more rotation) if I switched to hexes for the cards themselves. I also went from six symbols to three, for essentially the same reason. Here are some photos of various paper prototypes.
Hex Primitives (version #2)
These games were inspired by my playing Love Letter for the first time, and wanting to design a game that used a similarly ridiculously small number of components. (Love letter is played with a deck of 16 cards. Primitives is played with only 7.) I may try and bring this game to a Game Designer Sessions meetup tonight or in the future.
I can’t decide if I should write a GDC wrapup post, but I cobbled this post together from notes I sent to a colleague discussing 4×4 grid games, as well as my thoughts after seeing Asher Vollmer talk about Threes! at GDC.
All games are programmed on a grid of some kind. Fundamentally, even oddly shaped maps are generally reduced to a grid at programming time. But what I want to look at here are “games set on a smaller square grid”, presumably either 4×4 or 5×5 or maybe 6×6. This greatly reduces the search space.
There are games where the grid space contents move, and games where they do not. In the games where they don’t, you are still changing something about the grid, either marking a path or changing the state of the space in some other way. One category of games like this that comes immediately to mind are logic puzzles like nurikabe, numberlink, or nonograms. (I don’t think they all start with ‘n’ tho!) Another category might be games where you place specific pieces onto the game board, as in one of my favorite chess variants, Tic-Tac-Chec. Stacking games like Rumis might also qualify.
It feels like, at least in video games, games where you move the grid might be more common. The hole puzzle is, I think, the oldest. Although the ‘sliding a whole row’ mechanic is also pretty common, there was an early NES game called Yoshi’s Cookie that used that one. I am tempted to break these types of game down by mechanic and make a whole list. (This is the kind of thing I really like to do, and one of my favorite examples of thinking about mechanics is this cool family tree of matching tile games put together by Jesper Juul.)
Recently there has been a really interesting category of these games with a huge spike in popularity started by this game called Threes! launched recently in the app store. You can play it online too at http://threesjs.com/. There are now a ton of clones, and some of them have (slightly) different mechanics, creating a whole new branch of small-grid games. My favorite is this one called 2048, also playable online (though it appears to have not one but three app versions — no doubt because the original is open source). The main new mechanic here is that tile states “combine” to form a new more valuable state. An additional mechanic is that in Threes! as well as the variants I’ve played, the entire game board is moved at once, whether it’s only one space as in Threes!, or to their farthest empty position as in 2048.
I’m not doing a good job of remembering the details of Asher’s talk, but one was that in at least one previous version of Threes!, there were negative numbers. It’s worth noting that I haven’t seen a clone/version that adds those.
This is nowhere near comprehensive. Let me know what I’ve missed in the comments, thanks!
References / further reading:
I gave this talk at GDC (Game Developer’s Conference) 2014.
Here are some notes:
(The numbers below correspond with the side number.)
1. This talk was adapted from a previous talk I gave at Mobile March in 2013, titled Case Studies in Mobile Board Game Conversion (2013). That talk was much more about features of three games in particular, Carcassonne, Ascension, and For the Win.
2. This slide contains a screenshot from Doom (1993), the book cover for Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture (a book by David Kushner about id Software), and a movie poster for Indiana Jones and the Temple of Doom (from 1984):
4. I wanted to include a photo here of a glass bead game, or maybe glass chess set, but didn’t find a good one.
5. In case you haven’t played it, here is QWOP.
8. Arnold Lund’s Usability Maxims were first published in 1997. “Expert ratings of usability maxims. Ergonomics in Design, 5(3), 15-20. A study of the heuristics design experts consider important for good design.” @ArnieLund Oddly enough, this list of “maxims” used to appear on the Wikipedia article for Usability, but was removed before I gave this talk. (Not by me!) Here’s another site that has them: http://www.simonwhatley.co.uk/lunds-expert-ratings-of-usability-maxims
9. Unfortunately, as of this writing, the For The Win application created for Tasty Minstrel Games appears to be no longer available in the app store.
10. I mention here that Usability is a two-way street, even though it is generally thought of as the player communicating with the application, it is far more relevant what the application communicates to the player. This first section is titled “Usability Lessons for the Game Screen: Effectively communicating game information to your player”, and features the following recommendations / lessons, giving each its own slide.
- Highlight possible actions.
- Clearly show whose turn it is.
- Always animate AI turns.
- Hide “extra” information.
- Provide linear context.
11. This slide features a screenshot from Ascension: Chronicle of the Godslayer, put out by Playdek.
12. The screenshot here is Carcassonne, by the Coding Monkeys, which I call out as the “gold standard” of iOS board game conversions.
13. Here is a screenshot for Day’s of Wonder’s excellent Ticket To Ride application.
14. More screenshots from Ascension and Carcassonne.
15. Here is another screenshot from Carcassonne, as well as, in the foreground, a screenshot from Suburbia, put out by Jeremiah Maher.
16. This introduces a brief section on gestures and the other half of the picture, allowing the player to communicate back into the game.
17. More Carcassonne and Ascension screenshots. I recommend you support both tap and drag when drag makes sense as a gesture. Tap and drag are the two gestures you probably don’t need to explain in detail.
18. Here is a screenshot from Playdek’s latest masterpiece, Lords of Waterdeep. I talk about other gestures that probably do need to be explained: double-tap, long-press, and swipe. As well as some classes of gesture that I recommend not using at all: Triple (or more) tap, and multi-finger drag/swipe.
19 & 20. I’m not sure I feel like I managed to get my points across about undo and confirmation buttons. Essentially, undo is a good idea, and if you have complex actions, you should always give your user a confirmation step. I guess what I feel less certain about having effectively communicated is WHY those are important. Screenshots from Ascension and Carcassonne.
22. Here is a screenshot from Reiner Knizia’s Samurai (developed by Conlan Rios), as well as another from Carcassonne and For The Win.
UPDATE #1: Here’s a direct link to download the slides: Usability Lessons from Mobile Board Game Conversions (9MB PDF)
UPDATE #2: (2014-03-24) I added additional notes as well as the original session description and takeaway from the GDC Schedule.
Martin Grider looks at user interface specifics related to touchscreen ports of modern board games. He examines common touch interface paradigms that have emerged in the genre, making in-depth examination of some particularly good mobile board game conversions from the perspective of their UX and UI decisions. Martin also talks about working with Tasty Minstrel Games on the For The Win board game application for iOS in 2012.
The following questions are addressed: What interface elements and control schemes are useful for board game conversion? What UX paradigms apply to board game interactions in mobile, particularly as they apply to the game screen and multiplayer game creation screens? How do these lessons apply to all mobile game development?
Here’s a video demo of my latest project, Action Go, in progress. I’ve got all the code from Go-Tetris (the flash version) ported, and capture / territory counts are updating correctly. Now it just needs a bit of visual polish, a way to switch between game modes, a help / tutorial screen, and maybe some GameCenter leaderboards and achievements. There are a lot of other things on my wishlist, like score multipliers when you make more than one capture/territory at once (super easy), or one I just thought of today — a bonus/multiplier for when you clear all of one color or, better yet, the entire gameboard.
Anyway, here’s the video:
This year’s Global Game Jam is over, and from my perspective it was a raving success. I took part with the other IGDA Twin Cities folks, as part of a relatively large team focused on making a local multiplayer game using Xbox controllers. (Click the image to read more about the project I worked on.)
The weekend began on Friday night with everyone “pitching” at least one idea for a game in front of the group. As there were about 40 people there, this took quite a while. Then people started splintering off into groups. I went into this year’s Global Game Jam with several “agendas”. (Incidentally, I probably wouldn’t recommend this for beginners, but this was my third year taking part, and at least my sixth game jam, so I felt it was okay for me to have some goals.) Here is a list of those goals, in order of importance to me, and whether or not I felt they were achieved:
- Use Unity – Before this year’s jam, I had really only dabbled in Unity development. I’d watched a few tutorials, installed it a number of times, played around in a couple of sample projects. I went into this year’s jam with the intent of glomming on to someone else’s project who “knows” unity, so I could learn from them and hopefully make some contributions. Status: Wildly successful! I now feel like I know my way around Unity, and can at the very least make sense of projects when opening them. (This was not true before, as I had no idea where to look for things.) I could now easily make a Unity game on my own, and have some plans to do so in the not-so-distant future. All the developers on my team were experienced Unity developers, and I learned quite a bit over each of their shoulders.
- Make a game using controllers for input – This was a secondary goal, for sure, but it turned out to be not-so-hard to find a group who had this same agenda. I have big plans for this year and multiplayer games, so I needed to have a better sense of what is easy or difficult about using controllers. Status: Definite success! I not only got a sense of how to “manually” implement controller input in Unity (watching on Friday night over Ryan Schaefer‘s shoulder), but then spent an hour or so mucking around with Patrick Hogan’s InControl project, and pretty easily got that working also. (We ended up not using it, because I had some problems initially, but I think they were local to my machine/setup.)
- Make a “Candy Jam” game – If you haven’t heard of the Candy Jam, essentially, this is a game jam protest of King.com’s attempt to trademark the words “Candy” and “Saga”. There is a lot more information if you follow the Candy Jam link, but if anything, I think the case is not stated strongly enough. The problem is not just with King.com, the problem is with the system of trademarking as it applies to games in general. Similar to the way patents are given for too general concepts in the tech industry, trademarks on single-words are also far too general, and allowing them hurts the industry in my opinion. Anyway, I wanted to join this protest and contribute a game to the jam. Status: My teammates easily agreed, and this was a success also. (Note that we have not yet submitted the game “officially” to the Candy Jam, but that will happen soon!)
- Design an “action” game rather than turn-based game – Designing a game definitely took a back-seat to my first two objectives for the weekend. I pitched a game idea I had on Friday, but it was pretty simple, and I’m not terribly surprised nobody seemed super excited about it. Then during the after-pitch process, I had a lot of design ideas for another “asymmetrical” multiplayer game. (4-players each with their own objectives for scoring.) I actually still think that idea has a lot of potential, but it was fairly complex. We ended up sorta waffling on what idea we were going to make, deciding we should all just get started, and work on independent “scenes” in unity. None of the games I helped make were my design, so I can’t really say this was successful. Status: Definitely thought about it, but ultimately did not achieve this.
As I mentioned, Friday night was pretty “unfocused”, but I still felt like it was worth it, because I got to learn a lot about controller input in Unity, and thus, also a lot about Unity in general. I was also instrumental in setting up version control for the project on Friday night, but I’m not sure that was a “success” really. I’ll say more about that in a bit. When I left around 4 AM on Saturday morning, there were somewhere between three and five independent “ideas” getting floated around our group, but only one (Bird Drop) had anything appearing on the screen. When I showed up again on Saturday, Bird Drop was playable, and quite fun! I spent a few hours implementing the score display, as well as the system that triggered the game over screen and restarted the game after about 10 seconds or so. Eventually, I also worked on the over-arching menu system, as well as implementing sound effects.
In addition to my personal goals, here are some bullet points about “What went right” from our team’s perspective (although this is all still “in my opinion”, I’m not speaking for the team here or anything):
- We made a game! – Not only a game, we made (more or less) 3.5 games. There was even art for a 5th one that never got much past an empty scene in Unity. Probably more impressive, we made a menu and stuff. It really helped that Bird Drop was playable (and super fun) on Saturday, and that game got a lot of polish.
- Bird Drop is awesome! – I think everyone, even those who never worked on it directly, can take some amount of credit for how great it was. Although of course Ryan and Bill (programmer and artist respectfully) are the ones who deserve the most accolades, as the game was truly “theirs” from the start.
- teamwork! – I truly think we worked well as a team on this, with everyone contributing whatever they could (and often whatever was asked of them) to the overall team effort. This was a lot of people, certainly the largest group I’ve ever “jammed” with, and it was surprisingly painless. Certainly nobody tried to take over the project or had overactive egos or anything like that. A lot of credit should go to Zach, (who also organized the Jam, and runs the local IGDA chapter). He was probably the “glue” that kept the group together.
This would not be a true postmortem without some bullet points about what went wrong over the weekend:
- Git woes – I was one of maybe two or three of us who had used Git previously, and vocally advocated for using it over SVN for version control. I set up a repository on my bitbucket account, and initially it was marked “private”, which meant that I could only invite some small number of people to it. This limitation showed up in a couple of different ways, and eventually we resolved some of the problems with it by just marking the repo as public (which I should have done from the getgo). In retrospect, one of the other git advocates had only used Github before, and I didn’t want to use that because it’s not free, but of course it is free for public repositories, so we should probably have just used that, which would have allowed him to continue using the github app (and let some of the other devs use it too). Two of our most experienced Unity devs had never used Git before, and we wasted quite a lot of time getting tortoisegit working for them. I would NOT recommend tortoisegit in general, as I still don’t know how to view “git status” using it. Totally non-intuitive to those of us who basically only use the command-line git.
- Too much polishing on Bird Drop – This is definitely my own opinion, but I felt like we maybe spent too much time adding “juice” to Bird Drop when we could have been helping out finish up the other game modes instead. Bird Drop even ended up a bit more buggy at the end of the jam than it was on Saturday as a result. The final build we uploaded has several bugs that were introduced toward the end of the project.
- Not enough attention to the other game modes – None of the other game modes were really playable until Sunday, and subsequently were single-developer affairs until that point. As one of two “swing” developers I should personally have made more of an effort to help those other projects get finished faster, so we could have done more iteration on them.
- No focus on Friday – We basically didn’t even start coding until midnight on Friday.
- Too much time spent on infrastructure – While we were unfocused on Friday, I think we spent a lot of time talking about what code each of the game modes would share, and where that code would live. One of our developers spent a lot of time on that code, and it ended up only used by one of the games. That particular developer was WIPED by the end of the project, and it’s really only because he is an absolute rockstar that he even finished that game mode.
Overall, it was a great weekend, and I had a blast. Thanks to everyone on my team, and to everyone who participated at our location!