Making games for fun and profit. Well. Just fun. Also, running Indie Raffle: http://gamination.com/indie-raffle/
About vigrid (twitter: @vigrid)
Archive for the ‘LD #23’ Category
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!
I’m joining the compo for the first time. I have absolutely no idea how will this go, but I think that’s the fun part?
I’ll be using:
- C# / XNA / Visual Studio
- BFXR / SFXR
- Parts of XuProto (my own library)
I’ll be keeping my LD48 code at bitbucket, and I’m going to use it for the next compos as well.
If my PC’s resources allow, I’ll be streaming live.
Good luck to everyone, and above all – have great fun!