Posts Tagged ‘unity’
This was the second time for me at giving out a game.
Both times, I’m gathering people have enjoyed the games but found the character controllers funky. To this I agree.
This time around there were so many other things needing my attention that the controller had to be good enough as it was. Still not happy with it. Especially since I think we made a really quite interesting experience otherwise.
The two games are quite different, but I can’t help feeling like there’s something general I’m not seeing.
First was a 3D platformer from first person perspective Run with the Revolution and this Ludum we made a 2D platform puzzler:
In the latter, I opted for linecasting from the character’s center to three points below it to test its grounded state rather than using collision-detection on its box-collider.
I wanted to avoid being able to jump upon vertical wall touching, I also experimented with frontal collision using the same method as testing for ground. Idea was to have the character bounce back from walls it ran into so that it couldn’t and wouldn’t stick them. It seems that these attempts didn’t really work. Or it seems like I was missing something.
Having played some games this round and last, I know I’m far from alone in the defunct controller compartment.
So to those of you who know how to make smooth controllers within physics engines (I was using Unity), whats your magic?
(And yes, you should try our game, fortunately the controllers aren’t that important to it!)
I’ll be back with a proper what went which way… but I’d really like to see some comments on character control.
(Posted to my blog as well)
This past weekend was another Ludum Dare game competition, and the second one I’ve taken part in (this first you can read about here). I also organized a local meetup with the Knox Game Design group and we had five games in total submitted by the deadline. So without further adieu, here is my wrap up of what went right, and what went wrong!
Theme “You Only Get One”
For my game, YoGo Burger, I used the theme in a few ways. The setup is, due to some budget cuts, you can only put one topping on a burger. The customer will either be okay with it, or hate it and this will affect the amount of tip you get. To make matters worse, if a single customer complains to management you’ll be fired. To keep this from happening you use your tip money for bribes.
In practice the game is like playing multiple games of Mastermind at the same time. Customers will get back in line and order a second burger and if you remember what they liked before you can use that to get it right the second (and third, forth, etc) time. To make it interesting I reset the customer preferences each day, added more customers, and I also upped the value weights behind what they like and don’t. The effect is you’ll probably be deep in debt and fired by the end.
The design was very emergent. The initial idea was a Burger Time / Tapper / Diner Dash clone with one ingredient. It’s fair to say I didn’t really have a strong direction at the start, but as I added mechanics it began to take shape. I’m very happy with where I wound up and think that this kind of creative exercise is what the Ludum Dare excels at (even if the game isn’t fun for very long).
Programming in Unity
Just like the last time, I used the competition as an excuse to learn new technology. You might say this is the wrong time to learn something new, but twice now I’ve done it and shipped a game so we’ll have to agree to disagree. The new tech this round was Unity 4.3’s new 2D support.
Having working in Unity before, and having read up on the new features, this wasn’t so bad. Prior to the competition I had started porting my XTiled library to Unity, so I wasn’t completely green for this project. I had to google an issue here and there, but for the most part things went smooth. For the most part. Let’s talk animation…
Unity revamped their animation system for the 4.x release, and it’s now called “Mecanim”. It’s a very complex, yet powerful setup allowing you to define animations then link them with a state engine and create smooth transitions procedurally. That’s all good, but I need to move a sprite a few steps to the right and this seemed impossible. I’m sure spending more time with the system is what’s needed, but I have reservations about any system that cannot handle a simple, common use case well. If you cannot do the simple well, how am I to trust you won’t make the complex a nightmare?
In the end I wrote a few lines of code to handle all animations. I’m a programmer, it’s what I do.
Nothing good to report here.
I am no longer satisfied making excuses that “I’m a developer” or hearing “not bad for developer art” or worse “it’s so bad it’s good – you nailed the MS Paint ironic art style!”. See, I’m not trying for that. I don’t expect to be amazing, but I think it’s perfectly fine to expect decent. I commonly tell people I’m not “talented” I’ve just spent a lot of time writing code and anyone can reach where I’m at. I believe this to be true of anything, and it’s time I took my own advice.
So next year I’ll be reading up on art 101 and spending quality time with Gimp, Inkscape, and even Blender. Check back with me after 10,000 hours.
I needed exactly one sound effect for my game, so why is this even a section? Because it was my favorite part of the whole competition!
I wanted a cash register sound when a customer paid for their order, but because of the rules I cannot use anything I didn’t make during the competition and this include sound effects. Normally I’d use the amazing bfxr app to generate game sounds, but it wasn’t really suited for this task. I grabbed a portable microphone and headed out to hunt samples Foley style!
In the end I used a bell from my daughter’s bicycle and the opening and slamming shut a wooden drawer full of screws, bolts, and nuts. I then edited and combined those samples in Audacity, speeding up the playback by about 150%. The end result was a very convincing cash register ca-ching!
While I’m a horrible graphic artist, I am “decent” at music. This time I wanted to use my own guitar playing (as Dylan and Levi have done), however I’ve never actually hooked up a live instrument to FL Studio with my current audio gear. This led to a frustrating session of attempted guitar recordings before I decided there wasn’t enough time left to keep fooling with it and went with all synths – something I’m pretty comfortable with. (Yesterday I tried again, and it turns out I made a very simple mixer error).
The music inspiration came from the depressing, you-can’t-win-gameplay and reminded me of Papers Please. To get in the mood I loaded up some depressing Russian folk songs and waltzes until I had the right state of mind. Not going to win a Grammy, but I think it fit the game well.
And finally, as it tradition, here is a time-lapse of me making the whole thing – 17 hours compressed into 3 minutes!
Mama is Sick can be played here:
My first Ludum Dare! And my second game jam ever.
This post will cover what mine and @GarrickWinter (Guerric Haché)’s game is about, a summary of the process we went about making it and the top 3 things done well and the top 3 things we could improve on.
Quick description of our game (taken from the instructions screen):
“Mama is Sick” is a resource-management, hard-times simulation game.
YOU ONLY GET ONE DOLLAR A DAY to look after your family (thanks to a generous family from overseas) while papa is away and mama is sick.
Buy food and water to make sure the food, water and health bars of you and your family don’t reach zero or death will occur.
If your education bar reaches zero, you won’t graduate high school.
You have to last 50 days until papa comes back. Will you manage to graduate? Will everyone survive?
You can work in a clothing factory to earn 50c a day, but be careful not to miss too much school. You also need to study at least three days a week or risk not being able to graduate.
As soon as the theme was announced, Guerric and I decided to make a list of 10 game ideas based on the idea. This is always a useful exercise, jam or no jam, because it means you get to think up a few ‘less-inspired’ ideas, throw them out, then go with a better one.
We ended up with a list of 12 items:
- Menopause (This was my favourite until we settled on #9)
- Child (This started a conversation about China’s one-child policy, but we decided that since it was recently overturned, the issue would be dated in a game)
As soon as Guerric said ‘dollar’, we both knew it was what we wanted to do, and we started spouting off the potential things we could do with it.
Both Guerric and I are passionate about social activism, with my particular interest lying in feminism, so whenever we design together, we try to use mechanics to explore a social issue.
We also knew that given the time-frame, we had to design a game that would play to our strengths.
Guerric is basically a wizard programmer, but neither of us had worked with Unity properly in a few months (we both attend Vancouver Film School, studying game design).
Meanwhile, one of my goals is to be a narrative designer. Neither of us are artists, although my basic photoshop skills do tend to outshine Guerric’s adorably shoddy programmer art :P.
So we knew we weren’t going to do an open-world 3D game.
After settling on the ‘Only Get $1 a Day to Look After Your Family’ mechanic, the rest flowed pretty easily. We knew that interface design was going to be one of the most important things to get right for our game, so that was the first thing I worked on.
We worked on our mechanics for the first day and a half before I even got around to touching the narrative, which I did by writing a few pages of character design, then writing out the interactions I thought family members would have with each other.
Guerric, in the meantime, was busy figuring out how to optimise the GUI elements I had given him to work with.
We started putting in audio on day 3, leaving us with a full day to play-test, fix bugs and working on extra polish.
THINGS DONE WELL:
1. Planning and Documentation:
I wrote nearly 8000 words of documentation in total during the jam, with classic document titles such as ‘Audio To-Do List’, ‘Halved Numbered Narrative’ and ‘Guerric’s To-Do-List’. If you want polish for your game, make lists! Plan! Think ahead! We utilized Google Docs during the jam, meaning when I was play-testing, I could quickly point out a bug, add it to the list, then Guerric could cross it off the list when done.
Synergy! Just kidding. But seriously. The last time I had a working relationship this good was when I was in a band and my singing partner and I could improvise in harmony.
When you work with people who are interested in similar mechanics, passionate about similar issues – productivity triples. You don’t waste time arguing about meaningless items.
Guerric and I think of ‘Mama is Sick’ as our game. Not mine, not his. Even though elements of it were tasked to one person responsibility-wise, we still communicated everything we did to each other, constantly asking for feedback. Guerric proof-read my narrative and reminded me of elements to include in the GUI, I helped him think of programming solutions – synergy!
3. Play-Testing (and Scope)
On the second night of the jam, Guerric sent off a half-finished prototype to our friend Danilo. Even though it was nowhere near ready, this proved invaluable as it helped answer some questions that Guerric and I had been asking ourselves, such as, ‘Are the character stats bars enough? Does the player also need numerical values displayed?’ This helped relieve some of the worry we had. On the flip side, it also gave us confirmation for changes that needed to be made.
Furthermore, I was able to play-test the narrative 3 times – and would you believe that at one point, our game ran 90 days long instead of 50? On my first play-through, I reached day 56 when I realised, hang on. I don’t want to do this anymore. This is getting tiresome. Shit. I need to cut the narrative in half!
But none of this play-testing would have been possible without proper scoping. We knew our abilities, we knew the time restraints, and we knew what we had to do.
THINGS FOR IMPROVEMENT:
I feel like this is something that can almost never be done perfectly, as you’ll always have that one player who gets confused about something you hadn’t considered.
During the ‘Girls Like Robots’ post-mortem presentation at Unite this year, designer Ziba Scott mentioned that the tutorial should always be made first, and that by following this principle, he discovered that he had already made a third of the game.
In the past day of playing other Ludum Dare games, I’ve found that the most common gripe people have is that they don’t understand how to play the game – whether that be confusion with the interface, what the goal is or the controls. And it’s a huge barrier for getting people to properly play-test and rate your game.
So although we spent a good few extra hours putting in things like hover-text explanations of GUI elements and an instructions screen, we definitely could do more – like an animated opening tutorial day (that would take a better artist than me to implement).
2. Don’t Learn the Engine on the Day
Although Guerric and I both have experience with Unity, we only took a brief period of time the day before the jam started to familiarise ourselves with the latest version.
This leads to precious minutes being spent learning how to use certain elements of the engine during the jam that could be spent otherwise.
It also leads to mistakes that can’t easily be fixed.
For example, I made all the GUI elements 300 dpi for a 800 x 600 game, when I should have made them 72 dpi. This led to an unnecessary decrease in picture quality, that was somewhat circumvented by a fix one of my old teachers recommended.
3. GET AN ARTIST
Oh boy. So yeah. I’m not an artist. All the GUI photoshop work I did could have been done better, in a shorter period of time, by an artist, had we had the foresight to bring one onto our team. That would have also freed me up to do things I’m more passionate about, like narrative and mechanical design.
Overall, I’m super glad that Guerric asked me to do this jam with him. I’ve had an amazing time, learnt lots, and am proud of the game that we’ve produced.
For me, the most rewarding part has been reading the comments that the community has left us, and I’ve certainly learnt a lot through playing the games of others, and the amount of talent and creativity crammed into this weekend by thousands of fellow designers awes me to no end.
Mama is Sick can be played here:
Hi! It’s Stalek from Evil Indie Games.
This time I was making LD28 jam game alone (without my brother:( ).
And… It’s a very strange game! ;D
The title is something like: superfrozenkittengetsonlyonesecretbottleforyou.
And the screens look something like that:
Tools used: unity, flash, photoshop and garageband.
It was very fun to work on it, too bad I didn’t have enough time to put all planned art, sounds, and many extra super features in it:/
Here’s superfrozenkittengetsonlyonesecretbottleforyou LD28 page <- come, see and play!:)
Wow. We finally finished the game. And almost all of what we wanted is in it.
This is my 3rd LD and 2nd in team. I didn’t write here before but should I start sometime? It’s a deep night here in Kyiv and other teammates is already sleeping (what-a-hell!).
So, this game is about the captain stuck in a distant galaxy. He is looking for parts for the new ship on the nearest planets.
He’s only one assistant and the best friend is his board computer GO-1.
Take a look. It’s not so fast or casual. Well, it’s hard despite the fact that it does not require fast reflexes. But it worth time I promise.
I’ve been wanting a programmer as a friend all my life! Finally, I have one, and he’s amazing! I’m so thrilled to have an outlet for my own graphic design skills I’ve worked to develop over the years. Please rate our game. It takes a little time to download, but it’s a solid experience all the way to the end.
Click and drag on the planet to rotate around it.
Click on problems that arise to try and balance the planet out.
As new problems develop, there are new solutions you must choose from in your tool bar.
Thanks alot! I can’t wait to play everyone else’s submissions too!
Completely forgot to formally announce my Compo game, so here it is!
Dinosaur Ranger Interview: Burrito Challenge SUPREME (DRIBCS) is a quirky, fast typing game made in Unity3D.
It’s the job of your dreams: dinosaur ranger. You’re on step away from living your life to its fullest. You’ve trained for years for this moment and all you have to do is pass the interview.
In a fit of foolishness, you snarfed down a huge burrito for breakfast, and now it’s trying to make its way out! Quickly type your responses, avoiding mistakes and try not to soil yourself!
Yay! That was so much fun, though. Unlike LD25 with the team, I felt so little stress I thought I was dreaming!
I don’t currently intend to become the best game jam dev evar, hehe, I just had fun making something, even if I didn’t get all the way with it in the time limit, I will always have the ability to return to it and flesh it out. I love LD because of what people end up doing with the always loved-and-hated theme both during and after!
Postmortem and top-down, plot/world-focused game design heuristic (for those of us who ain’t so good at starting bottom-up from a gameplay mechanic) after the jump:
After finishing my 4th LD ever, competing annually, I can honestly say I learned a lot this go around. Previous years, i spent the time building up to it practicing whatever language/framework I planned on using. This year, i decided to try using Unity. I had some vague exposure to unity a handful of times, but nothing this extensive.
I can honestly say, as far as frameworks go, it’s really rather slick. I could definitely see using it in a real project.
At the end of the day, though, I’m honestly not too enthused with the results. I really just couldn’t come up with any good ideas for the theme this year. All previous years, i had so many ideas buzzing around I couldn’t get to all of them, and ended up having to cut things. This year, i got essentially everything in I planned from the get go, with plenty of time left of my hands to mull over extra ideas. All in all, i honestly don’t think the game turned out that fun, either. I honestly felt really restricted by the theme. Oh well, here’s hoping to a better LD next year!
Hey all, wow, another LD come and gone. It really is great seeing the amazing variety of games created in such a short period of time with only a single phrase as inspiration.
I went through a bunch of ideas brainstorming before I started working. I was at a restaurant when the theme was announced but thanks to my trusty smart phone I was able to see the theme and start thinking about my game before I got home.
I wanted to try something that I thought was non obvious, so I threw out the “Assassin with one bullet” and “Buffet with a single plate” ideas that where my first two. I saw some kids and it made me think about a mom scolding her child that they could only have one cookie. That went along with the #NOKILL sub theme that was going around, so I started fleshing it out and this is what I ended up with.
Things that went Right:
- I used Unity this time. I had done some small things with it before and I use C# in my day job, so I wanted to try it out for LD. It was in general really good, and the new 2d tools are fantastic.
- I used the 2d Toolkit addon from the unity store in order to handle my tile maps, it was really easy to generate additional levels using it, which was something I had trouble with during my last entry.
- I found a pathfinding addon for Unity. It has a free version that is really nice. Definitely something I will use again.
- SFXR is always handy for generating quick sound effects, Paint.NET was great also, as was Pixel Art Editor for android, which I used on my tablet away from the house to generate a bunch of the graphics.
What could have gone better:
- Having more time. Seriously, I need Ludum Dare to fall on a weekend where I dont have parties, or a concert, or something else.
- Getting the pathfinding addon to work with 2d toolkit. Wow, that ate up a ton of time. Couldnt find anything on the net that was helpful. I ended up solving it with inspiration and remembering a video I saw on you tube about 2d toolkit tilemaps.
- My math abilities suck. I had the hardest time getting some of the basic features working like the parents scanning for you. It was way to hard for me and its something I need to work on.
- Art, as always I’m a programmer and not an artist. Although I am improving and I have to say the difference between this game and my last LD game is like night and day.
So anyway, give my game a try! So far its gotten pretty decent reviews in the fun category. It’s at its heart a stealth game and no killing which is nice. There are a few “bugs” that create some really hilarious situations.
This is the most I’ve ever struggled with a Ludum Dare theme. It sounded okay at first but as I thought into it more and more, I just couldn’t get to an idea that I felt motivated about. I absolutely nearly just gave up on Saturday before I finally came up with something I thought I could work with.
The “you only get one” hook in my game is in the sense you are granted one dollar to bet with at the races. From there you can try to amass as much as you are able through shrewd betting. It would have been too simple to make this about any racing that could occur in reality so instead I am transporting the player to some dubious future where a series of homunculi fresh from the labs are being tested in races. If nothing else, I hope the game can raise a chuckle or two as these awkward humanoids sprint across the screen
Due to my struggles with the theme I didn’t get to any audio but I wouldn’t say it’s essential here – this one is more of an idle browser clicking game.
I was cutting it fine last night, correction early this morning (deadline was 2am UK time).
Quick Post Mortem…
I had great fun modelling the world, well back garden of Snowballs Chance. Using a simple turn based game mechanic with a “grid” where the player and enemy pieces start on a point on the grid and can only move up/down/left/right a fixed distance each move. This allowed the simple addition of a Raycast to detect if the move is blocked so I could drop scenery anywhere on the garden and as long as it had a collider the players and enemy would not be able to move through it.
So this none grid based grid system worked!
Setting the garden under snow, priceless, no texturing, or grass decals, just a nice flat white canvas.
Changing the camera view to a diagonal orthographic angle, hat of to Blizzard it just looks way better than a square viewing angle.
The darn theme: You Only Get One, What?
Life/World/Bullet all ideas that would be used by lots of people and quickly comes to mind.
So my original plan was you only get one Life and so as an adventurer, you can either go on the adventures and probably die or recruit adventurers and send them out to explore for you. You would become the tavern/map keeper/ quest giver. But that would need procedural lands to explore/caverns/jungles ect. Too big.
What about Paradroid, one robot but you can hack into and take over other robots. Lots of models and ship to build model and setup.
The hacking mechanic, you have to hack into enemy drones invading your spaceship, to defeat each wave. The hacking process gets more complex with each wave, while your ships defences are crumbling around you. Nope too abstract needs lots of setup for the player to understand what they are doing.
1HP, you only get one hit point, and it’s a family survival game (just watched a family survival movie), scale problems again. Family of gnomes, big garden in winter! TADA!
I started out with basic cones for the gnomes, getting the control interface to work and move them around. Setting up the camera to move around the scene. Then changing the camera after realising that the view in the editor looked way better than the square, think right angled, orthographic view I was using in game. Unfortunately this better view worked a bit too well as it had me trying to edit the game via the game view not the Scene view.
Leaving the core combat mechanics until the second day, due to me getting carried away with modelling and setting up the UI then just side tracked on lots of fiddly bits.
To turn or not to turn, that is the question. Got completely stumped when my enemies we’re teleporting from their start to end points, admittedly this was late on in the first day but that’s the trouble with Unity and it’s fancy physics engine and Update() per frame methods they put you into a real time mindset, way of doing things that can trip you up in a turn based game.
Lots of features didn’t make it, sound, music (although I still have not managed to learn how to make music for my games yet), see the cutting room floor for things that were on my todo list or in my head for this game.
I went for specular lighting with shadows, it makes my simple coloured, untextured models look good. But probably will cause issues for people on lower end graphics cards. Still I’m hoping that even low end modern GPU’s can easily manage this as it’s turn based.
My time management didn’t go too well, the first day was mainly setting up the control interface and dealing with a lot of quick hacks as opposed to a thought out design. But this is Ludum Dare do you really have time to design, use fancy design patterns and make life easier for yourself. Hell No, that would be the clever thing to do! DOH!
Lots of fiddly bit’s you remember the none grid, grid system, well Unity has this handy feature called layers and layer masks that let raycasts pass through certain layers but get stopped on others. Now this should be simple but if you also use the Sphere collider as a radar then having the radar on it’s own layer and using the physics system to limit the things it detects is a handy tip. Also things like 3D UI elements you want on separate layers but the players and enemies pieces ignore this layer. Anyway as you can imagine this can get fiddly and raise some interesting bugs.
Cutting Room Floor
Pushing Snow Blocks, crushing enemies!
Not managing to get weapons into the game, a spade, axe, pickaxe, shovel, chainsaw and dynamite (have you tried fishing on a frozen pond).
A frozen Pond, could have been a lot of fun, walk onto it and slide, or fall through the ice and freeze (did I mention chainsaw and dynamite).
To allow the Mush (the gnomes pet Mushroom of course) and his clones (hey were talking garden gnomes that come alive here) to become spring loaded launch pads. Think of the possibilities launching enemies at enemies, cloned mushrooms at enemies, gnomes at enemies, snow blocks, snowballs (multiple) ect. Hey if angry birds can do it why can’t I.
After naming the characters in the game I found myself thinking up dialogue for them. I should have started typing it up and setting up speech bubbles as this would have added so much more to the game.
Irene “Bert darling did you see that?”
Bert throwing snowball at son “What dear?”
Irene “Nothing dear, just thought I saw something moving behind that bush. Don’t throw so hard Bert you know how fragile we are in this cold”
Jake “I’m fine mum, dad can’t throw for toffee anyway. Take that!” throws snowball at this Dad.
Then could have tied the banter into getting the player started as a tutorial.
Then some other ideas that just could not have made it into the LD version due to my limited time and current skills.
Well I hope you also had fun in the current Ludum Dare and let me know what you think about “Snowballs Chance”.
After adding the parts to flip the tiles it was still kind of crazy so I had to go through and clean things up, make some things work how I didn’t intend and make it so there could be more empty space. It’s much better, but there is still a decent amount that needs to get done.
The right side I have to deal with and I’m thinking I may need for it to fix up certain areas automatically because as is, the logic can’t fix all the problems due to it not knowing what the next piece will be. I may have it look ahead one space to choose the best piece, but that’s still a lot of work.