Showing posts with label process. Show all posts
Showing posts with label process. Show all posts

Sunday, April 21, 2013

Simple diversions

I've been working on my game for a bit over the past few weeks, but have run into something of a roadblock. I don't know whether I want to continue on this path - I'm having a hard time "finding the fun" in it. Plus, the "real job" has been a real Debbie Downer, so I've been in a bad mental state. Not sure if the problem I'm experiencing is general malaise or if it's indicative that the game really isn't that fun. I've been playing some Modern Warfare 3, Civilization V, and Skyrim (trying to level my blacksmithing to 100) trying to recharge my enthusiasm. Not really helping so far. Although I did get my blacksmithing to 100 and then made it "Legendary" which reset it. Not really sure what the benefit there is, yet...
I attended the Mile High Agile conference on Friday and one of the sessions was about "gamification" in the agile space. A lot of the context was "how do you insert game elements into your teams so that they stay engaged". He provided some examples like LinkedIn's profile completeness (you want to be at 100%, right?) and the Nike+ product (which I'd heard about in a different context) tracking/sharing/comparing against your friends. There are some game elements in there to be certain. I'm not sure what elements of gamification would work at the 9-5, but the jarring reminders about basic game design left me contemplating the game I'm writing. Some of the basic elements (progression of difficulty, activity loops, etc.) just really aren't there. Is this because I'm failing to write something of quality or is it because there are different elements? What is the "fun"? How hard/easy is it to "find the fun"? Will it end up being the same game over and over again (and therefore boring) or will people stay engaged? How might I make the game continually challenging?
All of this was swimming through my head all weekend and I wasn't really any closer to resolving it until actually writing it out in this blog. I have some ideas about progression now. I had already decided on some kind of "ranking" system, but that was just a rudimentary tracking system based on the number of games you'd played successfully. But the difficulty of the game never changed - until now. I think I know how the single-player game can be more dynamic and grow with the player. Nothing fancy, mind you - but enough to make it something someone might be able to start with and then get better at over time. Not counting the multi-player version, of course (which will be hot-seat only for now, I've decided - back-ends and me are just not working right now).
So for now I'm working on the fully-expanded version and will then winnow it down for the first time players. But the point is that I'm now feeling a little more energized about working on this. Sometimes all it takes is a conversation with yourself to get back on track. Owen Goss, the main guy at Streaming Colour Studios, tweeted me this morning (whilst I was in the depths of whining about my un-developed/un-released software) that I needed to just "ship it!". And he's absolutely right. Funk over - development restarting. Thanks Owen.
I thought I'd leave this here, though. It's my Xbox Gamer Card and shows how much (or how little) I'm playing. And if you have an Xbox live account and want to kick my ass (not a hard thing anymore), maybe I'll see you online.

Saturday, May 19, 2012

Using Kanban for Work


I've been using agile development methodologies (Extreme Programming (XP), RUP, Scrum, etc) for over a decade now. In every job I've had in that time I've touted the benefits of using agile rather than whatever process was prevalent (usually just basic waterfall). In some cases the teams totally bought into it and saw fantastic productivity improvements (like a 300% increase at one company). I've had grassroots support in the trenches only to have senior management balk at it ("too hard to track", etc. - the typical NIH issues). In some cases, the team decided to implement it anyway. Other times the team thought they knew the technology but just ended up with iterative waterfall (smaller waterfall cycles).
Example KanbanFlow board
For all of my work with Otto Von I've done agile in some way. I've been doing primarily XP with some modifications given I'm a one-man shop. But lately Kanban has been getting a lot of traction in my mind and I've just started using an online Kanban board (see this post for a little more about it). What I like about Kanban is that it's really better adapted to how I need to work and what I focus on from an agile perspective - take on a small chunk of work, complete it, move on to the next.
A slice of cake is like a story
So what does Kanban offer? First, as in all agile methodologies, you start with decomposing the work that needs to be done into small pieces. The key concept is to look at the entire project as a cake that you cut into vertical slices. In most applications there are layers that need to be built (back-end, UI, storage, database, etc). With the slice, you focus on doing all of the work on the layers at one time in the slice while providing some small element of value to the project. In the picture above you can see that I've got stories like "Add Friend". These require UI changes. back-end code, and DB changes. That's my slice for that piece of work. These can sometimes relate to "functionality" or "features", but traditionally features are larger than a story would allow.
Your first column is usually the "backlog" or "To Do" list. These are the stories that you've started to define but aren't really complete enough to really consider for developing. Ideally you prioritize the backlog so you can quickly identify those stories that you need to finish defining first. Your "Ready to Pull" list are the stories, in priority order, that can be worked immediately if you have the bandwidth. The "In Progress" is just that - things that you are actively working. Sometimes called your "WIP" (work in progress), this should contain only those stories that you can work on and complete in two weeks (the standard iteration/sprint length). This insures that you don't try to take on multiple tasks that de-focus you from working something through to completion. Finally, when you've completed a story you move it to the "Done" list. It's pretty straight-forward, but the challenge is making stories/slices that are usable and small enough. It takes a lot of practice and even after a decade I struggle sometimes.
Kanban allows you to have multiple work items in process (your WIP limit). For me that's generally one. I need to focus on that one thing, get it completed, and move on to the next. With a larger team than I have (i.e., more than one),  your WIP limit will be larger. Using the Kanban board lets me prioritize the work that needs to be done. I can add new stories, shift priorities - all things that are important in running a small project.
KanbanFlow, the free(!) online board I'm using doesn't have some typical user story fields (and no, I don't get a kickback for rating them so highly, but maybe I should; are you listening, KanbanFlow?!). For instance, it tracks time in hours not points. I guess you could use the "hours" field as a "points" field, but overall it's a small thing. So far I am very pleased with the software and able to work around (or ignore) the things I don't require.
If you're looking to get some focus on your work, Kanban is certainly one methodology that you should explore. And KanbanFlow is a very good free service should you choose that direction. Good luck and happy coding.

Saturday, February 26, 2011

Decisions, decisions

So after sleeping on it last night, I have a plan. Scary, I know. I've always planned on integrating OttoJotts into Facebook as well and, since I'm going to do that, I think I need to release the game with 2 player games. First, as I mentioned in my previous post, I don't think there's really enough solitaire content to make the game compelling for 1 player. The 2 player game is really where it's at and, when I honestly think about why I did the 1 player game version, it was mostly to vet the concept and test the subsystems. Now that the 1 player game is mostly complete (sans hardening) it's time to really get into the 2 player game. I need to remind myself about the success that Words with Friends had and it's only a 2 player game - there is no solitaire game available.
So, with that said, I've recommitted myself to finishing the bloody thing with 2 player games available. I've been a bit down about the lack of progress and I'm sure that's what's going on (plus it's been a bit tight financially at Chez DeVoe). I think the need to make a bigger, better splash with OttoJotts is far more important than trying to get just something out the door. If I put out a piece of crap (fart apps, anyone?) then people are less likely to trust that my follow-up games are going to be any good. As the first app from the "studio", I need to make sure that it's a good one that people will think is good quality and good value for the money (if not excellent). Then, as my other apps come online, they'll be more inclined to get something else from me.
What this all means, I guess, is that I'm back on the initial track. After a reasonable night's sleep, I actually have some ideas for handling the game creation. Yes, it will take a little time to get it sorted, but I think it will be cleaner in the end, re-use some code (which is always good), and still meet the needs that the 2 player games require. So, back to the salt mines.

Friday, February 25, 2011

What to do?

So I've been having a bit of crisis of faith on OttoJotts. I think the game is pretty fun and should be enjoyable for total word geeks like me. The concern I'm having, though, is that as I get further and further into the two player games, the more things crop up that need to be addressed. For example, most recently I realized that in order to do two player games I need to revamp how the games are set up - and that they'll be different for 2 player than for solitaire. This, in and of itself, isn't what's causing the crisis, but rather it's the whole process. I've been working on 2 player games all this year. I haven't been doing it full time, but I've spent upwards of 2 weeks of actual time (80 hrs) working on it and I keep finding whole new sets of things I need to do before I can move forward. So now the question is - should I keep moving forward with the 2 player games and have them available at launch or should I launch the single player (solitaire) games and then, in an update, add the 2 player games?
I'd say that a fair portion of the games in the App Store are single player. You might be able to challenge someone to beat your score or something, but in general the two player/multiplayer market isn't quite as prevalent. So having 2 player, competitive gaming would be a differentiator for my game, but the time it's taking (or at least seems to be taking) is making me wonder if it will EVER get out.
Currently I'm still torn on what to do. I'm not sure that the single player/solitaire game is going to be compelling enough to keep someone playing. There's not enough there yet (achievements, etc) to make it something that a player would come back to over and over again. The graphics need to be redone to make it look a bit more professional (any graphic artists willing to work on a royalty basis out there?) and the game play needs to be cleaned up and the app hardened overall (error handling, etc). So I've still got at least 2 weeks of work left to do all of that, even if I dump 2 player games for now.
So, what to do?

Thursday, September 16, 2010

I keep distracting myself...

I've found that when I'm working on things that occasionally I'll focus on things that aren't terribly important rather than getting something working. For instance, I've been working on Alpha 3 and making some good progress - got the entire create new game system reworked and it's acting well. Now I need to start looking at changing the game logic and display to work with the Easy, Medium, and Nightmare modes. And what I did I most recently find myself doing? Taking a snapshot and working on the background for the main game screen.
I mean, the background does need to be completed, but honestly - it can wait until I'm closer to being completed with the game play. It's hard, though, because I know that it needs to be done, it's something I can work on in my mental background, and I'm playing with the colors and layout anyway due to the Easy and Medium play. Still, though - like reading quickly - I sometimes have to remind myself to re-focus on what's important.
The clunky main game
interface screen
It's a little harder with independent projects because I'm not tracking it as closely as I would a project at work. The background IS ugly as compared to the rest of the app now because it's all clunky (as shown to the right). I did ask if the interface seemed non-intuitive and such and got back (from one person) that it seemed fine. I'm hoping that if I can make it a little prettier, use some better images, etc., that I can make it clearer what's being used for what. I need to just make sure that it's not becoming a "high priority" item for me, but rather staying in the background. I know that I'll get it done before I put out Alpha 3 and I'm actually making faster progress than I expected. Still have a couple of changes to make to the data flow to support the additional checks for letters - which ones are right and which ones are in the right position. Sort of brings in some skills I haven't done with Xcode and objective-C, so it'll be a good learning experience. I just hope that I can get it sorted out quickly and back to doing what doesn't matter.
What kinds of things do you do when you're developing to keep yourself focused on the major tasks and not get sidetracked by the "cool" things you still have to do?

Saturday, August 7, 2010

Alpha 2 Love

It's official. On Thursday evening I sent out OttoJotts Alpha 2 to testers. I've picked up 3 more testers since Alpha 1, which I'm hoping will help when I start getting into needing to test multiplayer. The Alpha 2 has a LOT of stuff in it, including:
  • Statistics for game play, including games played, won, and average guesses per game
  • New help file - this is a huge improvement and MUCH better than Alpha 1's
  • New background images - basic changes, but look pretty good; not final, though
  • Server-based word lists (the entire word list is on the server now)
  • Persistence between launches. Less of an issue with multitasking in iOS 4, but a major pain in anything previously
  • Automatically scrolls to the bottom of the guesses list on load - something that should have been done for Alpha 1
  • Upgrade to iOS 4 support - this was far more involved than I expected it to be
  • Numerous UI improvements and tweaks - just a lot of pet peeves and usability tweaks to make it easier to use and understand (I hope)
So quite a lot, but the lion's share of the time was spent in migrating from iOS 3.1.3 support to iOS 4, primarily because some things just didn't work as expected in iOS 4. Part of that arose from needing to refactor a bunch of stuff and reworking some of the child/parent messaging, but overall things seem pretty stable with Alpha 2 (on my devices), so I'm happy for the nonce. I'm hoping to get some feedback on the build while I start work on Alpha 3 (almost completely multiplayer stuff). It's coming together - slower than I expected, but I think it's going to end up being pretty good when I'm done.
Back to the salt mines.

Wednesday, June 24, 2009

Alpha Testers

I'm at the stage now, I think, where I need to start lining up my alpha testers. I've posted to Facebook, Twitter, and now here for a call for testers. I'd like about 20 people for the alpha. Most of the testing will be checking things like the store, going on quests, and traveling around. Later we'll start looking at adding more for beta and then maybe actually get some cool things happening.
If you are interested in participating in the alpha and subsequent beta, please contact me at bdevoe at ottovon dot com for more information. I'll need some information about your phone so you can get started. It's a relatively painless process - I do have a bit to learn about it, though, so I hope you're willing to indulge my cluelessness for a little bit.
Thanks!

Tuesday, June 16, 2009

Success

Well, it took both more and less time to fix the problem than I expected. :) I had thought that I would resolve it quickly last night and when I couldn't, I thought it would take longer than it did this morning to rectify. So things are moving along well. There seem to be some errors in transcription for the XML document. An example would be that it seems possible to move West from Providence to Concord, NH. Um - not quite. :) So I need to get some testers hitting the various destinations and seeing whether the list matches the one I generated and then whether the list I generated is logical and accurate. So there's a validation of the generated list and a verification of matching real life. Just need some testers (that would be a general call for anyone willing to participate, by the way :).
I've got a defect tracking system up and running for the project. I've decided on CodeTrack versus Bugzilla as BZ was a bit difficult to setup, surprisingly. CodeTrack was a breeze and provides more capabilities than I need. I will need to refresh myself on Apache authentication and authorization, though. It's one of those things that I don't do frequently enough to bother storing in long-term memory. :)
So, I'm feeling good about how things are going, but I'm really concerned about the deadline at this point. Still need artwork, still need a database, still need to write the server-side scripts to access and modify the database, etc. Just so much left to do and the clock is ticking loudly. C'est la vie, or so they say.

Wednesday, June 10, 2009

Wowsers

So today was pretty much going to be shot, but I never realized how shot it would be until I now reflect on it. First thing is that today was Cathy's last day as a Kindergardener! YAY! She is officially a first grader starting in August. Whew. :) The graduation was sweet and precious and memorable. Good thing I was able to capture it with pictures and video. She was "knighted" into first grade and her first teacher, Mrs. Reinhart, was there to see the last of the students she shepherded in pre-K move on to first grade. It was bittersweet at times, but it was a great time.
We then went to lunch with the family of one of Cathy's best friends at La Fiesta. GREAT food - I highly recommend it. Everything was very fresh and it was quite filling. We ended up bringing home some of the chip dip...
After that was a visit to Dr. Edvin Manniko, an optometrist. When Waldorf looked at her readiness for first grade they noted that she seemed to be having some trouble with focusing her eyes on near objects. The good doctor confirmed that she was far-sighted, so we need to get her some glasses. They also recommended some therapy to help her eyes focus better and more consistently. There's a possibility that she'll be able to do without the glasses if the therapy goes well. It seems that I may have experienced a little of this myself growing up but managed to get through it. Apparently only 12% of farsighted people get through college without corrective lenses. I might be part of that class of individuals. Then again, maybe I just like being special. :)
On the way home from the doctor I got soooooo incredibly sleeeeeeeeeppppppy that I almost had trouble driving. We made it by early evening, but I was so wiped I practically passed out once we got in the house. And then I very quickly forgot that I was supposed to go help teach Taekwondo this evening. Whoops. :( So I called to apologize, but that doesn't make up for spacing it so badly. Yes, it was a long day, but still I'm disappointed in myself. :(
Now it's about 20:00 and I'm exhausted but mentally still focusing okay. I'm going to finish up the profile summary changes and get those checked into git. I don't know if I've mentioned it before, but I did finally get some SCM (software configuration management) going and am running git to track revisions. I have to say - it is damn fast. I'm very happy that one of my former co-workers at HID found it. Otherwise I'd be stuck with Subversion or CVS or something crappy. :) We used Mercurial at Maptek, but I knew that git was a bit more favorable over Mercurial from my HID days. And Linus Torvalds uses it, so that seems like a good endorsement to me. :)
Anyway, Cathy will be starting at Franklin Friends next week. Just a couple of days a week as we can't afford to send her full time. I just think it will be very difficult to get a lot done when I don't just want to sit Cathy down in front of a TV all day but I also can't afford to spend all day playing with her and getting nothing done on Samantha/Wizards. :( It's a bit of a conundrum, but I hope that her friend Ashley will spend a lot of time over here playing with her so I can get things done. *sigh* We'll see, I guess. Best laid plans and all that. With Franklin Friends I at least have two days a week where I'll have the house to myself, so to speak. :)
More to come later, I suppose. Hopefully the next few days will be very productive and I can get spells and inventories worked out. Hasta for now.

Saturday, April 11, 2009

IGDA Leadership Forum

I got an email a couple of days ago from the IGDA (Int'l Game Developers Association) about their upcoming Leadership Forum in Nov. They were looking for proposals for sessions, so I thought I'd send in a submission about agile and game development. By the time the session rolls around, I should have two games under my belt and about 10 years of experience with iterative development. :) 
I would have to pay my way out to San Fran, but it might be worth it. I think I have enough United miles to make the flight for free, which would mean that I'd just need to pay for the hotel. That would be a reasonable thing for the benefits of speaking at that event.
I got a confirmation that they received my submission and they'd get back to me in about a month. I'll post up as I find out more. It's not quite as prestigious as, say, GDC, but it's a great start and should open doors to other venues. I spoke to several speakers that made the rounds at the VCDC conferences several years ago and they all advised me to get into it. So I'm only 9 years late to the party... :) With this one perhaps I'll have the opportunity to speak at others and get more and more people as enamored with iterative development as I am. :) That would be cool.
Have a great Easter!

Sunday, April 5, 2009

Busy weekend = no real work

I worked a little bit on the view management yesterday for Samantha. I had been playing around with Gimp to try to get some background images for my locations, but decided to put that on hold. What I'm thinking I'm going to do for a short-term solution is mock up the locations in Sims 2 and then use those images until I can either get someone to make some images for it or do them myself later. I'm no graphic artist, so ideally I'd have someone else who is make them. :)
The wiki is progressing nicely. I've got a lot of game concepts captured in there and it's coming together nicely. There are many things still to document, but I've managed to document a lot of things that have been rattling around in my head taking up CPU cycles. Now that they're out, I'm able to re-focus on things that need to get done.
The weekend has been busy, though. I went over to my see my lodge brother and get taxes done EARLY on Saturday and then had to bust a move down to Cathy's ballet class. From there I headed over for Taekwondo leadership class and then back home after lunch. I was exhausted from a few days of no sleep and ended up crashing Sat afternoon. I desperately needed the sleep. Cathy was very sweet and brought me a bowl of Raisin Bran for an afternoon snack. :) Today we've got ELPs rehearsal and then a drive to Laramie - Cathy's spending the first week of her spring break in Laramie with her grandma.
I'm hoping I'll have some time this week to work on Samantha and get this first user story done and off my plate. There are several other user stories that need to be done and I'm rapidly running out of time if I'm going to make my "end of June" deadline.

Thursday, April 2, 2009

User Story Madness

I've been adding tons of user stories to my wiki, defining the game systems. There are still some systems I need to really flesh out, but I'm hoping I can get some good basic flow established and then test the hell out of it when I get to Alpha. It's been interesting so far, but things are definitely beginning to come together. I've got a bunch of things sorted out philosophically and progress is definitely being made. Yay. I've only got 9 stories, but they are 9 very fleshed-out stories. :)
I've also defined all of the player level titles. As player progress through the levels, their titles change and their abilities expand. They can create in-game items, which is pretty cool, I think, and they get more and more responsibility. Players can also form groups ('guilds' in EQ and WoW parlance) that are fully connected (each player is connected to each other player in the group) and they're limited in size. Other games (iMob, etc) don't have this kind of fully connected group concept, so I think it will distance us from those kinds of games. Being part of one of these groups also helps with combat (it increases the amount of energy you have available to use in combat), which makes it a little more interesting as well.
I'm starting to get combat fully fleshed-out. It's been a long time coming as I've played with a variety of options, tweaking things here and there to see what kind of impact it has. It's been very interesting seeing how small modifications cascade into unusable systems. I've got a basic idea of things now, so it's just a question of getting things into a more finalized form and coding them up in the game.
Speaking of the game, I got the basic tab control flow started last night. I have an idea for navigation where the user is presented with a picture of the topic. For instance, there's a "Profile" tab. When you click it you'd see a picture of a book, let's say, and various hotspots on the book would take you to detailed screens. So you might see a picture of a backpack, let's say, and clicking it would show you your inventory. I like it a lot better than the traditional "click the item in the table view" choices - it just seems a little more organic. The problem I think I'm going to face is that there might be a lot of choices in these main tab areas that could clutter the screen too much.
Finally, I need to sort out money. I've decided to include money only in-game - people can buy/sell items in the game and they get/spend money. I've been debating whether I should use just a standard "Gold Pieces" system or if I should do something with "Pounds/Shillings/Denarii" system (which I think is cool, but it's also confusing to some people). I was looking on Wiki and found an article that described the various Roman currencies and I think, given some of the other thoughts I've had about the back story of the game, that I'll use that. So it would be 1 gold aureus (pl. aurea) = 25 silver denarii (sing. denarius) = 100 bronze sestertii (sing. sestertius). That's pretty reasonable and not nearly as confusing as Pounds/Shillings/Denarii. :) I need to add that now. :)
So, lots of things moving forward. I've really been feeling productive, both on the design side and on the development side. Things are coming together with game systems and user stories and I've been making progress getting things working in the code. I just can't wait to actually get some things implemented and tested out on real iPhones.

Thursday, March 19, 2009

Development Processes

One of the things I wanted to post about was the process that I'm going to be using with Otto Von. I have always been a big proponent of agile methodologies, so I plan on implementing that kind of process with my company. You can read my posts over on my software development blog for more information about the whys and such, but I think that it tends to provide the best mechanism for making gradual yet complete improvements to a code base. It's easy, especially as an independent developer, to get lost if you try to work from a full feature list - you'll get some things partially done before you start working on something cooler. And in the end you'll end up with only part of the software done and that part is less than satisfactory.
There are some things that need to be sorted out in advance. For example, in Project Samantha I'm considering a lot of the game play design - how do things work together? what kinds of values will I use for various attributes? what kind of role does random chance play? But these are all parts of a user story about it. In the trivia game, for instance, I can plan the timing of the answer period and the number of points independently of how many questions make up a game. Or what format the question data takes. So those separately are user stories, but the vision and the interface of the various subsystems needs to be laid out a little more in-depth before I begin.
The main problem with 'agile development' is the tendency toward cowboy coding. In this case, I use it pejoratively to denote the "just get started" mentality - without vision, the coding ends up being no better than a prototype. And that's not the plan - I need a high-quality, high-value game at the end of this. That, or become a joke with the App Store crowd.
I've found some templates for game design that I've been using for some other project ideas I had. I'm going to be putting Samantha in that template so I can start play-testing the systems as well as capture some of the "cool" ideas I've come up with. :) That, and it should provide some kind of hint about how much work this is actually going to be. I may need to delay some things for an update (like things for higher-level players in Samantha). I may need to just dump some ideas outright (too much to handle). I won't really be able to make those calls and figure out what's really going to be in the "release plan" until I have the subsystems described.
Normally the user story would be very high-level and it acts as a token for a conversation to be had between the developer and the customer/designer. In this case, since I'm both, I'm planning on capturing the "conversation" in the story itself (or in the design docs). Ideally I would be either the designer or the developer, but it's a one-man show, so some accommodations needs to be made. :)
I'll post things up as progress is made about how well the process works/doesn't work and what kinds of adjustments I think need to be made to my base process. In the future, when I'm making money hand-over-fist and can afford to hire actual developers I'll be able to look back at this as the early definition and trial by fire of the process. Yeah, about that...