A development blog for our mobile adventure game

Latest

24

The following takes place between 9am-7am on the final day of Sprint 1. I’m UC Santa Cruz Programmer Sam Jenkins, and this is the longest day of my life.

Okay, I may be exaggerating a little, my day wasn’t quite as hectic as typical Jack Bauer day, but I felt a connection between Microventure’s 24-hour codeathon we experienced today and the long running Fox TV show, 24.

As I just mentioned above, we experienced quite a long day today. We found ourselves a little behind schedule for Sprint 1 and ended up having to cram the last of the code in one day. We started around 7 or 8 because many of us had to finish up the PacMan project in our Game AI class. While everyone was finishing up AI, Zak, James and I went to Costco to stock up on food for the night. The ride home from Costco might have been the toughest part of the night. We took Zak’s truck that could fit three, the ride there was bearable, but the ride back was another story. Trying to fit 4 pizzas, 3 churros, three humans, two drinks and a bin of cinnamon rolls in the front of a pickup truck was certainly not easy. I had “bitch seat” on the way back and I was straddling both halves of the car trying not to let my left foot slip and hit the gas petal, we didn’t want another car accident during one of these all-nighters (Sorry, Clement). Anyway, we got back safe and sound, the trip was worth it because the pizza and cinnamon rolls were delicious and the RockStar energy drink allowed me to stay awake all night. Shockingly, the combination of only pizza and caffeine in your stomach doesn’t sit well.

My goal for the night was to finish up the Gameplay tasks(there were 3 left). We realized that the tasks we created this sprint were much harder because we didn’t have our UML at the time outlining all the functions and classes we would need for the MVP. The second sprint should be much easier to plan. Anyway, Dan, Gerrit, Clement and I all worked on finishing up the Entity class, basic Entity movement and item spawning and interaction. We ended up finishing it all up at 4 or 5am, did a quick wrapup scrum and then I waited an hour or so for the first bus to show up, while some members said “screw it” and crashed on the couches.

I ended up getting home and falling asleep for about 2 and a half hours before I had to get up and go back on campus for the scrum review. The review was successful and we brought up many issues from the previous scrum and suggestions for the next scrum, that will be very helpful.

I am proud of my team for bearing down and grinding through the final parts of the sprint until we got it to work. Overall, it was a successful sprint and very cool experience. The next sprint starts in a few days and lasts another 3 weeks. Until then, I’m signing out and going to sleep.

-Sam “Barely Functional” Jenkins

Advertisement

Playable Visible Progress

Hey it’s Fletcher here giving an update on the overall project at the end of our first sprint.  We had some trouble this sprint matching up the work we had to do with the tasks we assigned to ourselves at the start of the sprint, due to a couple reasons including assigning programming tasks before the UML for our project was finished.  Because of this confusion, it often felt like a lot of our work wasn’t really getting us anywhere because there wasn’t anything visual that we could look at or play and feel like we were progressing toward a finished game.  However, during our end-of-sprint crunch last night, we were able to put a lot of work into combining all the things we’d worked on and actually start drawing the scenes and reacting to player input, which has resulted in a very confidence-reinforcing build of the project.  We are now able to move the player character around by setting its destination through touch input, and interact with a procedurally generated level! Once the camera is done much of the core gameplay setup will be complete.

ImageA zoomed-out view of a generated map containing the player, chests, and enemies.

Image

Setting the player’s target to a chest.

Image

Moving the player to the chest.

Now we just need to replace my crappy programmer art with some of the content our artists are working on, and we’ll have something pretty impressive to look at!  I’m looking forward to next sprint, and it looks like we should have a pretty nice setup and fun game by the end of it!

Sprint 1 Update

Yea…Our product owner told us to make a post at the end of every sprint or else something bad will happen. Since I love the game and the team so much, I’ll set aside my pride and write this post.

To all my stalkers out there I got some good news and bad news. Unfortunately, we did not get all of the stuff we had in visioned for the first sprint done. I believe we were a little over our heads with the number of tasks we started with. We plan to finish most of the game this sprint, but spent a third of the time working on the UML. We also realized that there were other task needed to get done before we started the new ones and the Pacman assignment for our game AI class didn’t help that much. However, thanks to team effort and Costco MegaVentures, we got a lot of the task done near the end of our sprint. I created and helped developed the header and c++ files for the game play part of our game and worked with Fletcher to actually get parts of the level to show on the phone. Plus, we also have a lot of experience and ideas for our next sprint. We need to revise our release plan, but MicroVentures will be out by spring as planned. Can’t wait to implement path finding and enemy AI into our game.

Here’s for good effort and a better sprint,

Gerrit “Stuby” Eggink

Stories & Songs (pt 1): Everyone needs a hero

Hello everybody, this is story generation engineer and writing supervisor Kyle, making his debut on the team’s blog. A little about myself: I enjoy long WAAAGH!’s on the beach, watching cartoons, playing video games, and making awesome procedurally-generated RPG’s for handhelds and other mobile devices. My main duties here at Studio Mu and Microventures is to help develop the procedural story generator and integrate it into the game in a meaningful way. I won’t lie, there are scars on my heart from many a year ago, left by the vicious betrayal of a moral-choice system based platformer, but James’ vision of a beautiful future for games has brought me away from my modest plantation in Brazil for one last go. I wanted to make sure I left my mark on the development process, so I’ll be describing my work here for the next few months.

So, to kick this thing into gear, I thought I’d start off with a brief exposition of what I was thinking when Lauren and I first drafted the heroes of MicroVentures.

The Knight

https://i0.wp.com/www.freewebs.com/aqwchaosdragon/knight.jpg

During James’ initial pitches, the Knight (formerly known as Warrior) was described simply as a loyal champion of justice in service to the king. He obeys without question, and carries virtue on himself like a mantle.

A solid start, but Lauren and I felt that he was too serious in comparison to the overall tone of the game. While such an uncompromising character would make casting your typical fantasy adventures easy, it didn’t really leave a lot of play for us when it came to writing for him. So, I suggested taking him in the direction of the incompetent glory hog.

After all, how hilarious would it be to have a pompous windbag to repeatedly tear down? He gives big speaches, but as soon as he tries to actually do anything, he gets destroyed. Winner!

We immediately rejected that idea. It’s kind of overdone, and it ruined the flow of the game having this useless coward continuously clearing dungeons full of monsters that wanted to eat his succulent flesh. It would be too much of a disconnect between the player’s actions and the information presented. Still, it got us thinking…

Instead of a raging incompetent, what if he was just inexperienced? Fresh out of the academy, full of ideals and dreams, with a grade A can of whoopass to back him up? A character like that has the potential for hijinks and personal growth, without compromising the tone of the game.

The Rogue

The Rogue more or less retained her starting personality. James described her as a heartless bastard, a hardened mercenary who doesn’t care for king or country…until they name the right price, that is.

This was a pretty good start, so the question once again became “How do we make the tone of the character match the tone of the game?”

https://i0.wp.com/images.wikia.com/left4dead/images/3/3c/Francis_Profile.png

Deadpan snarker; the comic relief. The rogue became the deliverer of cynical observation and breaker of fourth walls. She is still in conflict with the principles of the other characters (believe me, this will probably come up at least once in any player’s game in the future), but she accepts that she’s along for the ride with them and occupies her time by picking on them.

The Wizard

The wizard was viewed from the start as sort of a mentor or guide to the other heroes, leading them with wisdom and foresight. He also had a great thirst for knowledge, wandering far and wide just for the sake of curiosity. The intent was that this trait would grant us a storytelling opportunity to take the player on an adventure that reveals more of the world and its lore. Powerful and insatiable, if I had to describe him with two words.

Again, Lauren and I were fairly pleased with the direction he was already aimed in, so we only needed to reorient him to match, you guessed it, the game’s humorous tone. I had a suggestion…

The wizard kept his wise, thoughtful personality, but he was a bit quirkier. His vast experience and accumulated knowledge makes him think that others can’t keep up with him, so he tends to explain things in layman’s terms, no matter how easy it is to understand the subject. He also has a penchant for the dramatic, both in how he speaks when he gets excited or when he’s casting spells. He is no less intelligent or powerful, just a bit of a know-it-all.

—–

I hope you enjoyed this little breakdown of the three main heroes. I’ll be discussing more of the writing and story generation techniques in subsequent weeks. Peace out y’all!

– Kyle “may or may not have based his decisions on his favorite characters” Huey

Designing Adventure (pt 1)

So we have this blog now, and it is “encouraged” for us to all to record our individual progress (or not, details are kinda hazy in that regard) during the sprint.  So here I am.

My first assumption is some introductions are in order.  My name is Mark Ian Baluyot Zablan.  But people just call me Mark, it’s too much work otherwise.  I was part of the original Microventures prototype team back at the beginning of Fall Quarter, 2011 when Microventures was just a glimmer in James’ eye along with Zach Lindblad (now leading “Hello, World!”) and Lok Kei Lui (We let “Puzzle Defense” have her.  That’s my story and I’m sticking to it.).  And now the team is all here making sure his baby comes out in good health.  I’ve been programming since high school and have for the most part survived UC Santa Cruz’s Computer Science curricula without too many bad memories.

I am working on the level generation for the Microventures team.  The most striking thing is that procedural level generation isn’t some super-unique thing that everyone will laud you for in the years to come.  For the most part it’s simply a matter of making sure the generated level isn’t impossible to finish or worse, isn’t fun.  No layperson is going to recognize your crafty implementation of a digging algorithm or Eller’s Algorithm that you modified for a dungeon.  Yet if this isn’t executed correctly, if the level somehow isn’t good, it could break the game and ruin the player’s experience.  Ironically this lead to only Fletcher and myself being assigned to the project.

Now the part where I actually talk about work (I know how much people love walls of text.  I’ll throw in some images later when I’m up for it).  The majority of this was defined waaay back when during the greenlight phase.  Simply put, the two algorithms we’re focusing on dungeon generation for now are a “digging” algorithm and a Binary Search Partition (BSP) dungeon generation.  Fletcher is focusing most of his efforts currently on the Digging algorithm he had already written during prototyping whereas I am primarily writing our algorithm.  In a sentence, BSP dungeon generation involves taking your play field and dividing sections of it into subsections, hollowing out areas in those subsections, and then connecting the hollowed sections together using corridors.  What you get as a result is several clearly hollowed-out areas and adjoining rooms.

So far, the largest amount of progress I’ve had is being able to divide the area into subsections.  This is pretty straightforward given how we’ve designed the structures.  There is a BSP node class that uses a binary tree structure.    The algorithm examines the current node and determines it’s size depending on how large the current.

<DISCLAIMER: Potentially boring technical stuff incoming>

Right now my concern is how efficient this algorithm runs.  Microventures is planning on deployment on mobile phone platforms, so memory will be at a higher premium than if we had deployed to PC or other systems.  Recursion tends to add a bunch of method calls to the stack and depending on our level size this will quickly become unwieldy.  I did some experimentation to try and develop a tail recursion function for the partitioning section of the algorithm, but it is difficult since node creation relies on two method calls, one for each child node making it difficult to do both at the same time.  To this end I contemplated performing a iterative operation to create the tree, but so I haven’t done iterative binary tree traversal/creation since high school and I’m a tad rusty.  I’m hoping to test it out sometime next sprint, but I would prefer to get something operational and then optimize it.  I would rather have something work then make it structurally as efficient as possible while constantly crashing.  Preferably I would like it to run and be efficient, but you have to start somewhere.  Level gen code won’t run for long, only at the start of a level, but the game is intended to be executed quickly.  So for now I have my sights aimed on both getting BSP working and as a long-term goal investigate more memory efficient options.

That’s all I have for now.  Hopefully I can make these posts a little more interesting next time or come up with a better name.

-Mark

 

The idea of MicroVentures – Part 1

As the Product Owner and initial creator of the idea for MicroVentures, I am often asked questions like “How did you come up with MicroVentures?”, “Why are you making a casual game? I thought you hated casual games.”, “Why a phone game?”, “You like games like Braid and Limbo, why aren’t you making a pretentious indie game?”, “Seriously, why are you making a video game for a fucking telephone?” Okay, maybe not so much that last question, but some of the above assertions are true: I really don’t like casual gaming, and my ultimate dream in life is to make thought-provoking games independently. So, as one of my roommates would say, “Why MicroVentures even?”

I’ll start off by talking about the current trend in the game industry. It doesn’t take any statistic gathering to realize that casual gaming is on the ride. Importantly though, I do disagree with the assumptions that console and PC gaming are falling, but rather that the gaming market is stretching out to new audiences. As a game designer, I can’t ignore the growing trend in casual gaming.

No, I do not hate the idea of casual gaming. I think integrating games into even the smallest gaps of our schedule is something positive. What I don’t believe is this notion that casual gaming will eradicate the console/PC gaming market altogether. The idea of  of the usual Friday night LAN party with a group of friends being replaced with an all-night Angry Birds party just makes me cringe, and I can never see that happening. Ever. Why? Because that’s not what casual games are supposed to be, and what they are not is a replacement for highly-immersive, 3D experiences on consoles or PCs.

Casual games are meant for one thing: A short distraction. They serve as a way for someone to break away and have a short break from a normally dull, repetitive existence. That’s why people play Angry Birds and Farmville, it gives people a fresh set of goals and tasks that can be accomplished in a matter of minutes.

And that is essentially our goal with MicroVentures: giving someone a break from their life to accomplish other goals. I went with the genre of Roguelikes mainly due to the major influence from Binding of Isaac, but at the same time it seemed like a perfect solution to my problem: Creating an awesome game experience by having a DIFFERENT experience every time! By having each roguelike adventure to be aimed to play for 2-4 minutes, we successfully create a short, concise adventure game.

Though something’s missing. The problem with having these procedural adventures, there’s no way of having character development, story, or anything like that. OR IS THERE?

To be continued…

 

Week 3: Overdrive

So WordPress kind of sucks. It just doesn’t have the convenience and options available like Facebook. Basically, I have three choices. A slideshow that switches slides too quickly to read caption and has no order customization, a gallery of thumbnail images (you can click on them to open a different slideshow), or the way I’ve done it before that happens to take too damn long to upload images onto the post. Below is the first two options as an example. I’m still deciding which one is better. So let me know people.

This slideshow requires JavaScript.

A pretty eventful third week for Microventures production.

Once again we started the week with Jamestown which got moved to Monday so now it’s Jamestown Monday. And then there’s also Baballe Wednesday where we get some cuban sandwiches downstairs.

This week it was time for the team to present to Jim the UML we had created. Luckily for us by the end of it we were awarded the most unique UML thanks to our 3 prong attack on the code: Story, Level, Game.

Mid week was our long awaited Microventure’s White Elephant. Everyone brought in their 10 dollar gift. I ended up getting some liquor to make Martinis. Yay!

The highlight of the week was the Thursday/Friday Code-A-Thon. We loaded up on energy drinks and food to last us through the night. Definitely interesting to see how sleep deprevation affected everyone. Overall, no one made it through the night and no one seemed to be effective in the wee hours. I’m already looking forward to our next coding session, because our already humurous team seems to get only funnier the further along we are in the night.

So I promised playable content by the end of the week, but we only accomplished integration. Engine, game, and level gen got linked up successfully. We decided to put story gen on the backlog since we seemed to be the only one totaling 200+ hours on Sprint 1. Seemed like every other group didn’t even plan it to 100 hours. Coding night was a big accomplishment for the team, but it didn’t quite show on the SCRUM board. Future breakdown of our tasks will really help out.

Next week is our last week for the sprint. We’re definitely expecting some playable content so stay tuned!

 

Week 2: Technical Difficulties

Jamestown Sunday!

We beat Jamestown level 1 on Judgement! Elapsed time: 2.5hrs. First SCRUM task to be completed. Fletcher kicks over a chair in rejoice, Dan tweets a photo for proof, and Mark walks away to call his mom and tell her the good news.

All possible scenarios considered for interaction and movement.

Our UML in a nutshell and highly abstracted

Movie night to relieve the stress or more like Paprika mindf**&

MuVentures?

Microventures supporting the blackout against SOPA

Mark's Bastion

Microventures class diagram

Artists' first SCRUM meeting

The naked orange man...

...and his butt

Lead Engineer Fletcher leading us to UML victory

End of the week SCRUM meeting

Opened up the week with some class diagrams, but it quickly turned into Jamestown Sunday. What was suppose to be a short gaming session before we parted ways turned into a three hour ordeal. But by the end of it we beat the level and that’s one more task off the SCRUM board for Microventures!

UML was a real pain, especially for me. I’m not very good at planning and organizing something as large as a game without actually coding anything. I think the problem is it feels like the pass couple of months have been a bunch of design docs, technical design docs, and more and more planning. For me I’m just waiting to get some playable/visual content so I have something to excite over. At least I know the boring work is done and programming is on the table.

Team is jelling really well. Most of us watched Paprika which was like a Japanese Inception. We started Jamestown Monday where we beat a level of Jamestown on judgement. Foods is plentiful. I think we stocked up on Costco at the beginning of the week and finished all the food by the end of the week… At least we’re happy and healthy programmers.

Going to be working with the gameplay team to set up the game engine and hopefully have a movable sprite by the end of next week. Look forward to Microventures pumping out some serious content by the end of next week!

– Clement

 

Week 1: Hit that ground running!

A farmer by the name of James professed “So yeah, we’re gonna be hitting the ground running.”

And that we did.

Micro effort!

Release Planning

Then it was "Poker Time"

Intensity so thick and slice-able.

Fletcher lost his mind

And yet another fell victim

3AM...okay so I'm kidding but we had been meeting for a good hour now

Mark wanted to relieve himself of his misery as he played with the wall socket

Hopelessness

Passionate discussion. "I'm the product owner so...."

But then finally it happened. Could this be the solution they pondered...

The result of our hard work. Sprint planning success!

Pizza solved a lot of problems in the end

Alright so a little rough around the edges for my first blog. Outside of a handful of Myspace blogs this really is my first blog so I promise it’ll get better as we get deeper into the quarter. Basically most of us came back Tuesday and our Release Plan was due Wednesday and then our Sprint Plan Thursday so quite a busy first week. But everyone showed up and everyone put in the effort to get the job done. At times too much effort. At times too little effort. And at times we discussed racism. And other times ate pizza. I think it was the the excitement of coming back to school and working on this project we had planned last quarter, but I hope we stay focused and spend less time arguing over the little things that barely mattered.

Overall, an exciting start for Microventures. Next week we have UML due and a whole of Marmalade to work with.

– Clement “Continuing the Micro Trend” Tran

FIRST BLOG POST FROM STUDIO MU!

Our first blog post yay!

So yeah, today I set up a twitter for us: @studio_mu

Hopefully, I’ll be updating it more than my usual Twitter account. Anyway, this weekend and week (up till Wednesday) we are working on our UML for the project. I’m personally working on the Story generator Code and Sequence Diagram, hopefully can finish early and give Chris a hand with all the work assigned to him.

Not that much more to say. We’ve started our first official sprint yesterday, so we’ll be updating this blog as we finish tasks.

Over and out,

James Farmer