Making games for fun and profit. Well. Just fun. Also, running Indie Raffle: http://gamination.com/indie-raffle/
About vigrid (twitter: @vigrid)
In my previous post I decided to work on “Generations”. The plan was ambitious, and I think I overestimated my abilities. Oh well.
So far I have managed to create basic gameplay, meaning – controls, rudimentary AI behaviors and a test level.
This is my first session in Unity that was not a tutorial, so I’m quite content with what I have.
If you want to see how it works, click here.
Controls: WASD or Arrows. There is a couple of behaviors enabled:
- Swarming – cubes gather together
- Eating – cubes eat the radiating thingies
- Random Jumping
- Random Movement
You may have trouble controlling the swarm – it’s the AI fighting against you. Get used to it, you control freak!
It’s 2 hours into Ludum Dare for me. Well, actually more. I woke up at 5-6 AM and checked out the theme and went to sleep. My unconscious mind started working on an idea.
I was toying with an idea to publish a Unity game with just a cube in it. Nothing more. Call it a game, and then evolve the cube and environment from your feedback. What does the cube do, what should I turn it into. A kind of play on “4th/5th wall”, but in game design. I’m not going to do this. This is a fun idea but not for Ludum Dare.
What I’m going to pursue is going to be a bit more classical.
My plan so far:
- The player will get a swarm of creatures of different features and behaviors to control.
- The player will control the swarm, not individual creatures.
- The creatures will just follow the hints given by the player (the general direction player chooses), but their exact behavior will be affected by their features like: size, speed, acceleration, laziness, curiosity, hunger, energy, motivation, attraction towards a specific terrain feature, etc.
- The goal of the game is to move a number of creatures from the Spawn Point to the Breed Point.The level areas will have different features like: temperature, light, humidity.
- There will be many levels in the game.
- At the end of each level, some stats of survivors and non-survivors will be displayed.
- In the first Spawn Point, the creatures are generated at random, with random features.
- In all the Breed Points, the creatures that got there will get to breed. Features of the survivors will have the best chances to be picked from in the next Spawn Point.
- In the subsequent Spawn Points, the creatures will be generated at random, but with features biased towards those of survivors.
- The controls will be simple WASD/Arrows and maybe some mouse clicking.
- The player will be given tools to kill off creatures he doesn’t like, but only during the level playthrough.
- The graphics are going to be simple, just to illustrate different features of the creatures. So, probably abstract cubes or spheres with add-ons.
- Focus on the behaviors. I can churn out code quickly, I suck at graphics.
- There will be food and predators that will affect how the swarm behaves.
I’m going to use Unity3D.
I had this planned since April. The plan was to schedule one special weekend for another 48 hours of gamedev insanity.
I AM IN. I could stop at just saying that and listing tools I intend to use.
I don’t know you. You probably don’t know me. But I have a story to tell you. A shameless plug, you may call it.
-Heavy, Team Fortress 2
You may have heard about Ludum Dare a couple of months ago for the first time. You may have participated here a couple of times. You may have shipped a number of games. Or you may have heard about Ludum Dare a couple of years ago and never had the balls to participate, like me. The bottom line is – if you’re reading this, you’re probably looking for a tiny nudge to get on the other side, the side that tries.
I’m going to make you start in LD48 #24.
Here’s what I made: a game. The first game I’ve made in my life. You know what? I thought it’s impossible to make a game in just 48 hours. It took me even less to make one (one’s gotta sleep and eat). From scratch. Just using XNA. Doing this for the first time in my life.
Nobody on the internet can read.
Well, just to grab your attention mid-post, here’s my plug – this is how I made my game:
After the Ludum Dare I have started my own website, dedicated to indie games. I started getting in touch with other indie game developers on Twitter. I started to organize a bi-weekly indie game raffles. And most importantly, I really know now that I can and I want to make games. This is my success story.
You know what? You can do better. You can get more from Ludum Dare than I did. There’s dozens of tools you can use to make your own game. Heck, there are even books on how to succeed at a game jam! There’s an IRC channel you can visit to chat with folks that participate in LD48. You can get to know people, get to know tools, you can start learning game design and game development.
If you *really* want to make games and haven’t made one, here’s what you will do.
- You will have a look at the best games made in the previous Ludum Dare.
- You will realize that most of them have been made in 48 hours. Some in 72 hours.
- You will realize that you can make a game given that much time!
- You will ask yourself, if you are willing to spend 48 hours to know if you *really* want to make games.
- If you do – you will book a couple of days following 24th of August for game development. Your family and friends will understand that it’s important for you and will let you try! Trust me on this one.
- You will register on the site and will post your “I’m In!” post.
- You will make a game, and I promise I’m going to do everything I can to play it
If you need more convincing, you can always drop me a line and I will hypnotize you into making a Ludum Dare 48 game.
Good luck, and I hope to play your game soon!
So, since AlwaysGeeky shared info about his voxel engine he did for his Worlds in Collision (really great work, you should check it out!), and it got your attention, I would like to show off my library – XuProto.
It has started as an idea to create a framework to help develop XNA games for game jams, so it has a couple of other features as well.
- Asynchronous background task management
- A couple of math functions (random vector generation, interpolations)
- Perlin noise – 2D and 3D
- Rudimentary skinnable GUI functionality
- Texture Atlas
- Event-driven input management (keyboard and mouse)
Feel free to have a look at it, even though it’s still work in progress, I’ve made sure that it’s stable.
If you have any ideas for what a XNA-based Game Jam Framework would need – let me know on Twitter or here
Well… It’s a question some of you probably ask themselves, so here’s what I learned so far:
- Rate games made by others. If your Coolness rating is zero (zilch, nada, null), that’s exactly how many ratings you can expect to be getting every day.
- Write a post-mortem. It’s a good thing to do both for you, and for others. You will spend some time thinking about what you did, others will benefit from reading your thoughts. Include a link to your game in the post-mortem there.
- Whenever you comment, just don’t click the stars, that’s pretty much gaming the coolness system. Leave a comment – spend that minute or so and point out things that you liked and disliked. Try being positive there – for a lot of people (like me!) it’s a first-time experience, and words of encouragement do wonders.
- Offer to rate games made by others, they will be happy to return the favor!
- Encourage others to rate games, not only yours, but overall. Karma will do the rest. #LD48 Twitter hashtag is a nice tag you can use.
- Just don’t be uncool.
tl;dr: Good: I made it. I learned a lot. Bad: XNA is not for jams, web is easiest to play. Ugly: I’ll be back.
This was my first Ludum Dare and the first I have ever made and released. I am proud, as I always wanted to make games, and finally found the courage to try and make one for real. I had my cherry popped after over many years of dreaming (I’m not an old fart yet, though). That was totally worth it! Even if it’s crap to you, to me it’s special: http://www.ludumdare.com/compo/ludum-dare-23/?action=preview&uid=10441. If you haven’t rated it – rate it, I’ll be happy to rate you back!
What went right?
- Preparation: I read this book. You should read it too.
- Sleep: I slept enough to be rested and productive during both days. The theme was announced at 3AM in my time zone, but I decided to sleep, instead of waiting for the theme. That was a good call. Sleep deprivation is really bad for your brain.
- Tools and Technology: I used Visual Studio with ReSharper (VS without R# is crap, it’s a fact), programmed in C# / XNA, used GIMP for graphics, and BFXR for audio. By saying that GIMP went right I mean – I struggled a bit, but found my way around it. By saying BFXR was a good tool I mean that I’m deaf as a doorpost and I have managed to get some sound out of it. There is bad side to XNA which I’ll address below.
- Source Control: I used a repository for my LD48 code. That gave me the comfort of having an off-site backup, and comfort of being able to screw up without risking losing all my work. Also, for free, I just needed to post a link to the repository and I was done with publishing the source code.
- Focus and Motivation: Most of the time I was focused on creating the game, and limited distractions to the minimum. On the first day I blogged about my progress a bit, logged on to IRC for a second, tweeted, followed others’s progress, etc. I had a longer lunch break and ate out. On the second day I was more focused, never got on IRC, ate at home, stayed away from Twitter and from blogging. This helped me to get into the “zone” ans stay there.
- Time Lapse: This deserves to be put in bold and all caps: RECORD A TIME LAPSE, IT HELPS YOU COMPLETE A GAME. There. Now that I have your attention, let me explain. First of all, you have a “I’m being watched” syndrome and you focus on the game, as you know… Your private chats, and messing around the internet are going to be recorded. So you don’t do that. (To be fair, I have to admit that I cheated, as I recorded only a single monitor in my time lapse). But the other, and probably more important part is – when you watch your time lapse, you can see how much time you have wasted on doing stuff that you didn’t really need. That’s a great resource, for you, and for others as well. More on this below.
- No Livestream: Initially I toyed with the idea of live streaming, but decided against it. First of all – I figured it doesn’t serve any purpose that a time lapse does. Second of all – it eats a lot of your resources and your system is a bit less stable. During the coding, last thing you want to see is this:
- Unless you’re me… BSOD intro: this definitely went well. I think I spent about 3 hours making it right and aligning all the pixels. But it felt great to read all the positive comments about it. Being a crap game designer, this intro was my transition into the Tiny World theme, and something that was supposed to grab my player’s attention. It also allowed me to justify using…
- Isometric graphics: I have declared a voxel engineI could use, but that would feel like yet another Minecraft. I wanted to get out of my comfort zone, and wanted to actually create some graphics. People say that the graphics looked “polished”. I think any real graphic artist would have done a better job. I’m satisfied with the graphics, because they’re consistent…
- … and Humorous: I figured, if I’m not a game designer (yet) , I can’t make a good game in 48 hours. I’ll try and at least make some people laugh. So, William and Steephenshould be quite familiar:
- The Little Things: Can’t draw? Don’t have an idea for eye candy? Particles are the answer! Made a 2D game, but it makes sense to add a third dimension? Draw some shadows!
- Little Differences in Mob “AI”:
I had 4 different behaviors for the mobs. Too bad level design didn’t give them a chance to show. More on this below.
- And last, but not least: I MADE IT!
- Tools and Technology. If you think you’re having a deja vu, don’t worry. You’re not having it. XNA is great for getting results quickly. It is hack-friendly (or rather proper-architecture-unfriendly). It has a content pipeline that just works. It is sh*t when it comes to publishing to non-Windows. Cost: lost Linux and Mac players. Hint: learn and use web-friendly technology for the jam.
- No Code Reused: I have declared my library, but I have managed to reuse only 8 lines of it. I didn’t have anything for simple 2D / isometric graphics. A voxel engine and a working HUD system weren’t of much use for my game. Cost: “Crap. Oh well”.
- Scrapped Content: Having no experience in creating games, I wasn’t really sure what to do. My first tile set was too complicated. I used 6 parts to create a “vertically scalable” block, not really having a solid idea how do I want my game to look like. I scrapped this, and created just a single sprite to display a block. That worked perfectly, and allowed me to draw cracked blocks quickly. My audio – I have created some sounds on the first day, but ended up with re-creating all sounds on day 2, as I forgot to use them, and disliked them. I wanted to make all the pixels/blocks distinguishable during the transition from 2D to isometric. I failed. Total Cost: about 4 hours. Hint: if you’re a coder, create sound effects only when you’re about to plug them into your code, not earlier. If you’re not an artist, don’t create content that you’re don’t need yet!
- No Music. Well. It hurts less because most of the games didn’t have any music. Cost: less fulfillment.
- Bugs and Glitches: the game crashes when you run off the map. It would take 2 minutes to fix this. There are some minor graphic glitches with tiles overlapping the other sprites. There is a problem with alpha blending not working the way I wanted for the explosions. Cost: if you haven’t noticed these, it’s just my pride.
- LEVEL DESIGN: It is sh*t with a capital SH*T. The game feels empty, there are no enemies, and the level is just too big. I haven’t implemented any spawners, only the main boss spawned a random mob periodically. There were too many weapons and too much ammo. I cut too many shortcuts implementing the map. It ended up as a maze game with elements of shooting and jump-to-cheat feature. I had the level implemented as a PNG file with predefined colors meaning different things. It would take 15 minutes to make the level design a lot better. Another 15 minutes or so to implement mob spawners with some ugly copy-pasta from my Boss class. Cost:a lot of playability and fun was lost. I have to confess, I was tempted to cheat and update the level design after the release, but I <3 U all too much to do this to you. I could probably submit my game into the Jam, not into 48 hour compo, and have a lot better level design and more polish.
- Know Your Audience: develop for web, if you can, or at least have build scripts for multiple platforms.
- Know Your Tools: practice pixel art with GIMP – pixels are good for most of jam games. Learn what the sliders do in BFXR.
- Have a 2D Engine You’re Familiar With: Why? Bad 3D art is… Well… Just bad 3D art. Bad 2D art is something that your players can fill with their imaginations.
- Focus on The Gameplay before Focusing on The Eye Candy: I spent my time making the particles and shadows pretty. I should have made my level more enjoyable instead.
Ludum Dare was the best creative rush I’ve had in a long time! I enjoyed playing a lot of your games already, and I’m happy when I see that someone has rated my game. Even if it ends up on the very bottom of the list, it will still be unique – as it’s on THE list. I am definitely going to participate in the next one, and will look around if there are any other events that I could join. I am also motivated to learn Stencyl, and release a couple of small games to the world.
I’ve had a great time, and will have even more playing your games.
Day 1 Time Lapse:
Day 2 Time Lapse:
If you have a couple of spare minutes, please download this: https://www.box.com/s/aa8f78ebcf34a83fcf89 and let me know if it runs on your computer.
Let me know when it does and when it does not. Please let me know if you (know you) have XNA installed, and what version of Windows are you running.
Thanks in advance <3
Enjoy and laugh: https://www.youtube.com/watch?v=DrqFEWB2YJ8
A little help, please?
I would really appreciate if you could download my work in progress, and just check if it crashes on your computer.
Please leave a comment and tell me if it worked, if you have a moment.
The build: https://www.box.com/s/148dc2ba476dd1e418d2
The source code: https://bitbucket.org/vigrid/ld48
William can’t wait to get into action!