Jump to content

  • Log In with Google      Sign In   
  • Create Account

Crawling with ideas

12 Games in 12 Months, Game 1: Week 1

Posted by , in 12G12M, 1GAM 06 January 2013 - - - - - - · 940 views
12G12M, 1GAM, programming
12 Games in 12 Months, Game 1: Week 1 Week one is done. It wasn't that long, only 3 days really, as on the New Year I wasn't working, due to it being a day off. I had unfortunately bit more things to do than I anticipated - to be precise I had to do coding for my day job over evenings and even on the weekend, but I found some time to write game.

The goal for the first week was simple enough: Write a minigame in which you move around with a marine, and shoot monsters that follow you and want to eat you. The assumption was that if there will be not enough time to add more features, I can always take the minigame and polish it properly. As I have written in the previous entry, the goal was to have marines walking on planet, but implementation took bit more than I had time allocated for it, and so that feature has been cut. After all, what's the point of having pretty looking game if it's unplayable?

So, CUT CUT CUT! Gameplay is all that matters!

Speaking of making a playable game - how do you get there from nothing? If you're making a one evening game, it's easy to keep things under control, but on longer projects, especially if you make them with other people, it's good to have some kind of a plan. What I usually employ is a methodology called scrum. To keep it simple enough: the creation of the game is divided into short time periods called 'sprints'. Why are they called that? No idea. But let's not dwell on that. Each sprint has certain set of goals that must be met. These goals may be 'implement shadows', 'create sounds for Boss #2', 'add death animation to Blob enemy', or whatever you can think of. It's good to keep them simple, as this way you can really see the progress. Writing 'programming a game' as a task sort of defeats the purpose, as you can't really see any progress for too long.

Usually when you meet IRL with people you work on projects, it's good to have real life board to display the progress, but if you're working with your online friends, you don't have such luxury. What comes handy then is some online software for tracking the project status. In our project we use Trello , which I used at my day job already, and quite liked. It gives you good enough overview of what's going on, and labels to give quick visual feedback on what each task is about. Here's screenshot of one we're using:

Posted Image

Each of the coloured labels has a different meaning:

Posted Image
  • Green label is anything related to programming. If you see this label on a task duplicated by task with another label, it means coding backend for it. For example enemies need both graphic part (models, animation, textures), and coding (AI, spawning, interaction).
  • Yellow label is anything to do with graphics. 2D and 3D objects, menus, concept art, or animations, it goes all here.
  • Orange label is sounds. Music, SFX, voices go here.
  • Red is design. It's a catch all for both things that need to be still polished or designed, and general Quality Control. Sprints fall under this, as finishing a sprint means passing quality check to see if it actually works.
  • Purple means temporary. Tasks with this field means that they only have to implement certain part of the full task to be 'good enough' for current sprint. Usually it's better to divide the tasks to give as clear distinction between what needs to be done and what doesn't, but I use this to give whoever is working on the task some leeway - if you can implement more features, great. If not, just implement the minimal amount, and we're still on the path to finish game without any delays.
  • Blue means that task is to be done for the current sprint. Simple as that.

As you can see, the tasks are divided into couple lists: To Do, Current Sprint, Doing, Done, and Final. The distinction is as follows:
  • To Do has all the tasks that need to be done to finish the project. Obviously listing all of them at the beginning is nearly impossible, but here's where all the tasks that are thought up start.
  • Current Sprint is tasks that need to be done during this sprint. They are technically the same as 'To Do', but this distinction helps them to not drown in the sea of other tasks for the game, and it means they're easier for people to browse.
  • Under Doing you put whatever feature you're working on at the moment, so that your friends can keep track of what you do, and if you are on your own, it's a quick reminder of what you were doing, so you can resume where you left off on previous day.
  • Done is a feature that is completed for current sprint. Feature put here needs to be tested, and from there it can move to 3 places: 1) if it's not good enough, it goes back to 'To Do', and needs to be re-done in some sprint (preferably current). 2) if it is good enough, but it's temporary, the description of the feature changes to reflects that, and is put back into 'To Do', so that it can be fully implemented. 3) if it is good enough and not temporary, after the sprint is checked, it moves to 'Final'. Congratulations, you're one step closer to completion.

Doing this (like writing a full Design Document) might seem unnecessary to some of you, especially if you work alone, or think it's just a dumb waste of time for things that aren't game development, but make no mistake - this does make the workflow smoother, and if there's even two of you, it does help a lot. So give it a try, and if you like it, write me a line. I'd love to hear about your experience.

Oh yeah, I also bought a sketch book and couple pencils (2H, 2B, and 2x HB), and I will be studying drawing in my (definitely slowly disappearing) past time. I want to get better with 2D art, especially to be good at concept art. I know it takes years, but I'm not backing off. Oh yeah, if you know of any good online course (especially free online course ;) ) or videos on drawing, I'd gladly hear bout it as well.

Well, that's it for today. Next week is looming already (no, really, it starts in 15 minutes here), so I better go to bed. This week it's time to implement nearly all elements of the gameplay. See you then!


So far in the series 12 Games In 12 Months:

1. Announcement
2. Game 1: Intro
3. Game 1: Week 1

12 Games in 12 Months, Game 1: Intro

Posted by , in 12G12M, 1GAM, Programming 01 January 2013 - - - - - - · 1,021 views
12G12M, programming, 1GAM
12 Games in 12 Months, Game 1: Intro Happy New Year, people!

Today is the very first day of development for my 12 Games In 12 Months project. I have really looked forward to this, but I'm also bit afraid. This year will be really tough, with me working essentially 1.5 shift for the whole period. I need to keep the goal in mind though: Get better at creating games, and prepare to earn some serious cash this way, so I can worry less about not being able to support my family, especially the kid that's on the way. He/She is also my first kid, so I'm in for a ride ;). Let's see how this will turn out.

I decided that, since writing on how the project is coming along takes a lot of time, I can't keep you posted every day, but I need to share my progress at least every so often, I need some kind of updates schedule. It will work like this: first day of every month I will write a post about the new game. The design document will be there, and I will outline the challenges that lie ahead of me. Then, every weekend (preferably on friday evening, after wrapping up the work for that week) I will write about my progress and what's left, doing a tiny post mortem and saying how my goals went. Final upload will be when the game is finished, at the very least with the last day of month.

I will be working only on weekdays (at least if I can pull it off), so that I have weekends still off. I have no doubt that rest will be needed, so I need to keep my 'just one more line of code' attitude in reins. Hopefully I'll manage ;)

So, without further ado: first game, as mentioned before, will be a shooter. It will be ripping off a lot from old Cannon Fodder game, but I hope that choosing that great of a role model, it will force me to work harder and make sure everything is tip top.

I have put up a Design Document that I will be using (and most likely modifying) during the development. I tried to write down as many rules as possible up front, to make the coding easier and more to-the-point. I plan to have gameplay demo as soon as possible - the latest after the first week, so I can figure out if the game is fun. There's not much point in re-making the game from scratch 3 weeks in, when I see that it's not as fun as I hoped it would be. The second week should focus on making the game complete. Create the menus, the pre-mission view, make sure that all the functionality is working. Third week should focus on building interesting levels, applying the polish and weeding out the bugs.

My friend said that he'd help me, so at least for this project I don't have to worry as much about the gfx content. Which will hopefully mean that the 4th week I'll have off, so I can rest a bit.

The hard bits I foresee:

-Camera: I have created couple planet-based games, and there are many challenges here. Getting good camera view that shows you the action as well as shows the curvature of the planet is really hard if you try to go for differing planet sizes.
-Obstacles: creating paths for player units to walk through will be hard. I'll most likely will have to write some kind of level editor plugin for the Unity3D, so that the maps are more than couple obstacles sprinkled here and there, but have also dense, unpassable forests (that aren't too high on polygons, but still LOOK unpassable).
-AI: it will have to work in 3D, along the curvature of the planet. I don't know what problems it may cause, but I suspects some demons hide here.

See you again soon, wish me luck!


So far in the series 12 Games In 12 Months:

1. Announcement
2. Game 1: Intro
3. Game 1: Week 1

January 2013 »