Posts Tagged ‘unity’
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.
I made a one button game using only ones in one hour.
WHAT WENT RIGHT
- Using kinematic bodies for character control. Mucking around with forces and stuff is okay for objects in freefall, but for fine-tuned control you need to just script it. I resolved overlaps using the “separate axis” method (push all the way in Y then all the way in X) which gave better results than Unity’s built-in character controller (which has an annoying rounded bottom).
- Music Generation + Cleanup. Abundant makes pretty good music to begin with, and I was able to monkey with the phases and instruments in less than an hour. I believe in doing the music first because it sets the tempo for the game.
- Animations. I’d never done it before. Looks like I’m okay at that!
WHAT WENT WRONG
My paltry “planning”…
- Overambitious. I was planning the scope like a jam entry. It got late super quickly, and I had to pull everything together in the last six hours. Lots of ideas got cut (walking enemies, guns that you could pick up, moving platforms). Since I knew it was going to be a fail, I tried to fail with humor.
- Getting sick. I didn’t sleep for over 24 hours and then I crashed hard. When I woke up I realized that I hadn’t been productive for a long time, either. Take a nap every 12 hours.
- Not direct enough with theme. My original interpretation was “you only get one inventory slot” i.e. you can only carry one thing at a time… but then I only finished one thing you can carry. Theme should be obvious right away, not depend on a lot of content.
- PHYSICS 2D BUGS IN UNITY. E.g. two kinematic rigidbodies don’t cause trigger events. Took forever to debug that. Also, it causes the editor to become sluggish and crash a lot.
- Last-minute hacking. I’m sure there’s some bugs in there and I’m sure they were written in the last 15 minutes. So it goes…
- Chasing a high-bar for quality. I’m a bit of a perfectionist, and I was very detail-oriented with non-critical features (e.g. control tutorial UIs, scene transitions, walkcycle FX) because I demand a high level of quality from myself. It’s not good for jams, but I can’t imagine subjecting you all to crummy looking stuff with my name on it. I respect your time as players!
Final game looks like this:
It is an asymmetrical 2 player (one with a mouse and keyboard, the other with an Xbox 360 gamepad) 3D fire sim toy thing. You only get one match’s life (if you’re player 1). Water and fire interact in the usual way. Strike the match on the rough rock to start. Points are awarded for tree/ house voxels burnt to the ground. There’s no sound.
This was my second ever game jam and I learned lots from this project – obviously fire simulation, but also the particulars of Unity’s particle systems and I’m sure lots of other things I can’t remember now.
Obvious bugs include the match floating up at certain times, due to unity’s physics collider. The match probably shouldn’t float on the water either…
I started lots of things that didn’t go into the final game – independent voxel fire grids that could interact, procedural generation of terrain. I guess the maths was a bit too difficult after nearly 28 hours of programming for my brain! I really shouldn’t have eaten so much sugar. Maybe next game jam I’ll remember!
So I started the compo very late and I won’t be able to finish in time, but might for the jam.
Anyway since I haven’t made a post yet, I should explain.
My idea was to make a climing game where you only get one life and chance, meaning if you die you can’t play the game again, you know like real life, basically because I’m an ass (unless you delete the hidden file, then you can play again, but you lose your score). Well I decided on 2D and for it to be pixel art, haven’t done either before, main mechanics were pretty easy to manage, but the biggest thing has been making the level randomly generate, which I’ve also never done before. Let’s just say it’s taken a while to do that and partway through I realized I needed another piece. The art is actually pretty easy, though I’m not much of an artist, used the program Pyxel.
I’ve been working in Unity, as that’s what I’m used to, pretty easy for 2D games from what I can tell, was easiest to program my own controller for it instead of using anything built in.
As you can see in the image, it looks like crap, that’s because I haven’t added anything to flip the pieces, which is used to determine what to place, based on what’s below and to the left and if the one to the left is facing left or right. Once I get that, a lot of issues should clear up. I’ll also need to shrink the character, and make art for that.
The last two days have been crazy. It’s been a while since I’ve worked on a game, and I was nervous about jumping into a game jam while my skills aren’t up to par, but I am extremely proud of myself and what I built.
What did I build?
Well, I built a game called Tumbling Towers. I’ve come to call it a reverse Tetris/Jenga style game where you receive a random block and you must build up and try to not knock the tower down. The goal of the game is to build as high as you can and score as many points as you can.
Where the theme “You Only Have One” came into play is where you can only build with one of the three materials in the game, and you can only build in one direction (up); (yes, for some reason I instinctively ended my sentence with a semi colon there… the two days of heavy coding must’ve drilled that into my head much, much more.)
Sounds cool, where can I play it?
It wasn’t just me who worked on the game, I got some late assistance from a good friend of mine, who did some of the art last night. (Just the building blocks). Also, I used a friend’s music he made for the game.
I’m not really sure. I really want to continue the project and make it more clean, pretty, polished, etc. and maybe release it on iOS/Android. A few of my friends have been playing it pretty often and have been enjoying the builds I was sending them, and I think it can be a pretty fun game to play on tablets. It needs some optimization for them, but it can be done.
When I decide to jump into doing that has yet to be decided, but maybe early January once I’m done with my One Game a Month project for this month.
If anything, I might use this as a base for a Physics based puzzle game I had an idea for a few weeks ago. It could go hand in-hand with it.
What did I learn?
This is something I want to write down to allow myself to reflect on my skills and learn how to improve next time I work on a game.
Art - Art isn’t my strong suit. I should have found an artist at the beginning. The artist I worked with mid-way through only had enough time to do work for a small bit of the game.
Scope - I applied a rule I made for myself long ago, which was to keep it simple and not go out of scope. For once, I followed the idea of just creating a simple mechanic and working from there. For game jams, this works wonderfully well. Definitely something I’ll consider again next time.
Testers - This was the first time I actively put out builds during a game jam. Twitter friends as well as my personal friends were more than willing to test out the game in it’s early phases, which helped me discover a bug that wasn’t showing on any of my 3 computers. Test early, and test often!
Programming - Holy crap, I programmed this entire thing?! I still don’t believe it. I know C# and Unity, and have made things before, but never completed anything. I consider what I did a completed product, even though it has it’s obvious flaws. This has boosted my morale and while I know I can’t take on a super crazy, out of scope project just yet, I do know I can create simplistic games in Unity 3D.
Unity’s 2D is Really Easy - Oh yeah, Unity has a really easy 2D system. I thought it’d be a bit challenging, but it works extremely well and is easy to pick up. Definitely using Unity’s 2D development tools from now on.
Until next time…
Well, that’s all. Thank you Ludum Dare, and the Ludum Dare community. I made some good friends during this jam that I didn’t expect to make. It’s been fun chatting in the chat rooms, checking out everyone’s live stream, and tweeting with you all while I took breaks and relaxed. I can’t wait for the next one and am happy I finally have a completed project for the Ludum Dare/Jam.
Time for me to shameless plug myself:
If you’d like, please follow me on Twitter. My handel is @AngryFacing.
You can also check out my website, http://mudry.me, which I’ll be updating with game development blogs, and so forth. If you want, you can also check out some of my shipped games and other projects.
Thanks again everyone and see you all next jam!
Oh, I recorded myself doing a lot of the development. If I can pull the videos from my Twitch stream, I’ll post a time lapse.
Thought of a name: Perfect Match
The gameplay is coming in now: one match can move, and burn itself (also burning the environment). – I want to make it multiplayer, so one player controls the match and has to burn as much as possible, and another player controls a ship with a hose to put out the fire.
A little late, I suppose, but I’ve finally started putting the game together.
I’ve only just decided to make use of NGUI for Unity. Is that ok? I know you’re meant to declare this at the start, but it was a recent snap decision after frustration with Unity’s default UI system.
Anyway, I also have a preliminary screen shot for you. Now to go make fart sounds!
I have used Unity before, but not for anything like what I’m trying to make for Ludum Dare this time.
At the end of day two, (2 am, guess I should sleep) I have a mostly working game. Scoring, a goal, enemies, etc. Most of tomorrow will be polishing, start screen, maybe additional levels.
All in all, like always, it’s been a blast so far. Look forward to seeing how much I can get done before 6 pm tomorrow.
And so I present the sample level from my game, “You only get one cookie”.
My game is the epic story of one child, parents who want him to go to bed and an endless pile of cookies. A No Kill stealth game of cookie thievery.
theChris, our lead developer, has been at work trying to implement picking up the #rope:
(cross-posted on my blog here)
13 hours of work come and gone, minus a game of Tobago and some insane CS humans-vs-bot action.
The latest state of the game is playable here. You can burn down the evil ork, or you can choose to turn on the innocent villagers and burn down the hut.
So far so good. Tomorrow is all going to be about the two I’s – AI and UI. The eventual game idea is to have ork lairs that spawn and gather orks for raids on the village. You have to go out and hunt these lairs to keep the village safe. Over time, more and more lairs spawn, and if enough are active at once, a great WAAAAUGH will form and they’ll all rush the village. Not good.
I will be a happy man if an ork can throw a spear into the dragon by day’s end tomorrow.
I’m thinking about a new title though. Perhaps “Our Hero, Dragon” ? What do you think?
#yogo Day 2: #ropephysics demo featuring theChris
sigfig is putting some test levels together and is animating some of the enemies:
The interns are getting the AI cracking:
#Headdesk count at 1900 hours: 4
“Please, please let me undo… Why won’t you undo plz VI mode plz” -theChris
So, here’s the result after an hour or so. I restarted everything, because the original idea didn’t really work out as intended. Now, it’s going to be a chess with a twist! Of the last hour, I spent most of my time modeling and texturing the tokens. Now, it’s time for the game logic… And, if you want to see me struggle through this, check out my stream at http://www.twitch.tv/manabreak_ld :)