refrag

LD15

Literacy Damacy

My clock officially started Saturday at 9:48 A.M. PST. Unfortunately as I’ve approached bed-time on Sunday, I’m not yet “Done”.

But I’m going to submit my Work-In-Progress anyways. The first 2 levels (of 4) are available. I should be able to complete the others tomorrow evening.

Literacy Damacy is a game about the importance of education. The player must traverse through four stages of literacy. Within each stage the player will be able to “absorb” tasks or objects they can comprehend at their literacy level. Some objects will help the player improve their literacy level while others will be out of their reach.

Play Literacy Damacy (WIP) Here

UPDATE: I’ve completed Literacy Damacy to the level I was planning (12 hrs after the end of my 48hr deadline). The above link will still take you to the latest build. The 48hr compo build is saved and available here. The difference between the two is only 2 work hours.

Comments

25. Oct 2009 · 01:48 UTC
Oh man, you have a lot to live up to with that title :)
27. Oct 2009 · 16:16 UTC
:( If only getting a Ph.D. were so easy… Back to work for me…
27. Oct 2009 · 21:32 UTC
Empathy, Jonny D: I am feeling it. Though the game did give me a glorious moment when I realized that I could at one point read anything except dissertations. Damn it.

LD16

Excitement!

Yay! So excited for this weekend. I will be making my entry in Flash.

Screencap TimeLapse is setup and ready to go so I’ll be able to upload a video after the event.

Blog updates will hit www.refrag.com first and I hope to cross-post here.

I’ll also be webcam live broadcasting via Ustream here: http://www.ustream.tv/channel/ludum-dare-16—48hr-game-making

Best of  luck to everyone!

Fun with Alpha Masks in Flash

I was able to think of a very rough game idea on the walk home so I started sketching some ideas on paper. I knew that I’d need to get Alpha Masking working in Flash to make my idea work. I’d never done Alpha masking in Flash so I started to prove out this tech.

Build 001 took a couple of hours to get working. Note to everyone wanting to do Alpha Masking in Flash… .cacheToBitmap is the trick. Do this on the target Bitmap you want to mask, as well as on the Sprite you are using as the mask object.

Build 001

For Build 002 I decided to try and hack together some of my old tile engine code. This again took longer than anticipated mostly because I was copy and pasting from wrong directories. Doh. Anyway, an hour or so later and I had this working. You are seeing a tile layer being masked by a sprite that has alpha blobs moving through it. The hero object is not affected by the masking because she exists in a separate object.

Build002

I’ll muck around for another hour or so tonight before I rest up for tomorrow.

Pre-Shower Update

Spent a lot of the morning fixing my cobbled together code from last night. Things are looking ok from the tech-side though I’ve spent more time than I wanted.

Build 004 is available here: http://www.refrag.com/gamedev/ld-16/ It includes character movement with the arrow keys and sonar blasting by clicking any of the black area. My game concept will revolve around the player only being able to see through tiny sonar blasts. They need to navigate the terrain with very little visibility.

Build004

My goal today is to get the bulk of the game done so I have all of tomorrow for polish.

Time for my shower!!!

Half-Way Point

Almost at the half-way point. I’m fairly pleased with where I’ve gotten.

The core gameplay tech is implemented and I’ve been able to iterate on it as I go.

I’ve rewritten my tile engine to use a .csv file instead of XML which has allowed me to use Excel as a level editor. While this took a good hour to do, it’s proving invaluable as I iterate on my level designs.

In Build 007 Levels 1 & 2 are playable at a prototype completeness level.

Playable version here: http://www.refrag.com/gamedev/ld-16/

Build007

I’m on-schedule. My plan was (and is):

  • Friday: Prove Out core gameplay tech (done)
  • Saturday: Build the game. Make it playable start to finish. Get to functional Alpha.
  • Sunday: Polish, Polish, Polish. Add gfx and audio as time permits.

Comments

scellers
12. Dec 2009 · 23:30 UTC
This is a really awesome game! I’m very excited to see the final version. :)

Day 2 is Over!

Time sure flies when your eyes are burning.

My project is in a good finaling state with most elements complete. I’ve spent a few hours this evening on polish and tuning. Hell – I even fired up Garage Band to throw together a small audio track.

Tomorrow I’ll formalize the intro and ending and then it’s just remaining polish and bug fixing.

Screens from the Alpha Build.

alphabuild_screen1

alphaBuild_screen2

Comments

SonnyBone
13. Dec 2009 · 06:46 UTC
I envy your near-completedness.

EchoExplorer – Done!

echoexplorer_screen1

Wooo… what a ride. With 2.5hrs to spare EchoExplorer has been submitted to LD #16. My first “real” LD. Total development time was around 30 hrs.

I’m really glad I was able to spend today just worrying about the little things. It’s given me the time to put a lot of small touches to the game including  a proper ending. I’m quite pleased with the results. I’d love to hear your feedback.

Submitted here: http://www.ludumdare.com/compo/ludum-dare-16/?action=preview&uid=1277

Comments

samel
13. Dec 2009 · 21:35 UTC
Great, i like the game idea! Good work
Mark Overmars
13. Dec 2009 · 23:09 UTC
The game idea itself has been around for a couple of decades, but what impresses me more is the graphics.

EchoExplorer – Post-Mortem

First off: Wow. What a weekend. So many thoughts I want to share. So many emotions flooded out during the experience. Let’s see if I can try and compose this a bit.

LD Entry URL: http://www.ludumdare.com/compo/ludum-dare-16/?action=rate&uid=1277
Time Lapse Dev Log: via YouTube, via MobileMe

The Plan:

My high-level plan for the weekend was:

  • Friday: Prove out key tech elements needed for the game concept.
  • Saturday: Build the game. Make it playable from start to finish. Get to “content complete”.
  • Sunday: Polish, Tune, add the nice-to-haves.

I’m glad to say I was more-or-less able to stick to this plan.

Friday – Concept Discovery:

The Ludum Dare theme was announced at 6:00 P.M. on my way home from work. “Exploration” was not the theme was I was planning for so I immediately panicked. I figured I’d try and explore a concept of “limited visibility in an environment”. There was a small problem with this… I hadn’t yet figured out masking in Flash.

Friday – Tech Prototyping:

Being able to mask areas of a layer was going to be key to my game concept so I spent a large portion of Friday night focused on prototyping technical implementations. Thankfully I was able to figure this out within a couple of hours and I had my first build showing a bitmap with a sprite masking it. I was able to addChildren to the sprite to get the dynamic effect I was looking for.

The rest of Friday night was spent shoehorning some of my tile engine code into my game concept. I called it a night at midnight.

Saturday – Fleshing out the Concept

It’s amazing how your dreams change when you are up to your eyeballs in a project. I was able to focus in on my game concept a bit better with a night’s sleep worth of brain parsing. I decided to scrap my idea of doing a platformer due to unnecessary risk. I focused in on the concept of a bat (easy to draw & animate) trying to find his way through a cave.

Saturday – Building the Content

I had to force myself to stop playing with my tech at noon on Saturday and start focusing on building game content. This is where I encountered my biggest stumbling block. My tile engine code was great at loading an overly verbose XML data file. But this XML file was not ideal for rapid prototyping. I ended up deciding that Excel would be an ideal level editor. So I rebuilt my tile engine to load a .csv file. While this was indeed a big stumbling block, it only took me an hour or two to resolve. And in the end, the time saved by being able to edit levels in Excel was well worth the investment.

Building the levels was very straightforward and it didn’t take long at all to build all 5 levels of the game. I focused on a learning arch that would guide the player through the experience. The game peaks in difficulty in level 4 then eases it’s way down to the end. By 7pm I had the game playable from start to finish. This was a huge accomplishment and really put my mind at ease. The rest of my time could be spent tuning, tweaking, and polishing.

Saturday Night – Audio

I spent about an hour in GarageBand putting together a straightforward audio track that would serve as the atmospheric backdrop music. Nothing special – but it certainly added something to the experience.  CFXR (a Mac port of SFXR) was the tool of choice for the sonar sound effect. Since I knew the player would hear this sound a lot, I made 3 variations of it that played at random. This partially minimized audio strain.

Saturday Night – Sleep

I called it a night at 1am quite confident in my progress. Trying to sleep was next to impossible. It appears that after 18 hours of straight game developing my mind and body started acting weird. My brain wouldn’t calm down as it continued to parse through a backlog of thoughts and ideas. My body felt like I was going through withdrawal. I was breathing weird, my heart was racing, everything hurt. It was a very very odd experience and it took 3 hours to get to sleep.

Sunday Morning – Book ends

Saturday night I came up with an idea for the game’s ending. I decided to invest a lot time Sunday morning building this out. I really really like how it turned out. A good chunk of time was also spent on the title screen which led to me changing the fonts throughout the game.

Sunday – Final tuning

Once of the last decisions I made was to remove the timer system from the main play-through of the game. I felt the timer took away from the feeling of solidarity and exploration. I wanted the player to explore with no pressure the first time through. I did however add the functionality so a second play-through (during the same game session) would trigger the timer and allow the player to race against a par time for each level.

I submitted the game at 3:00 P.M., very pleased with the final result.

Thoughts & Conclusion:

I’m very conservative in my development style. I’d rather focus on something small and polish it than stretch my time too thin. EchoExplorer was no exception to this rule. I cut many elements very early in development that I felt were not critical to the core gameplay. But even with this small core I attempted and succeeded with many new things this project:

  • This was the first time I’ve made a game with “levels”
  • I built a .csv parser so I could build levels in Excel. I’m so impressed with how well this worked.
  • I got alpha masking working.
  • I created a really cool ending sequence with dialog, timed sequences and camera panning.
  • I made my most polished and awesomest game to date.

I wanted to create a small but polished experience. The game can be completed in as little as 2 minutes but there are lots of little things that I feel make this a richer game experience. I like the pacing. I like the graphics I was able to put together with my limited ability. I like the story and emotion the game delivers. I even think the difficulty and frustration is nicely tuned given the short length of the game.

What would I have done differently?:

I had a lot of time to be a bit riskier but I chose to err on the side of caution. Next time around I may loosen up a bit and try to bite off more. Though next time around I should also be able to progress faster from the tech-side. (I still spend a lot of time looking up Actionscript code as I write)

The bottom-line is there will be a next-time. This was my first “proper” LD. It will not be my last.

LD17

Basecode Declaration

My basecode is set and ready to go using FlashBuilder/Flixel 2.35/Flex 4. My skeleton app is viewable  with source-code here: http://www.refrag.com/2010/04/23/ld48-go/

I’ll have less time this weekend but I hope to make up the time with a smarter workflow and using a much better core set of code.

Let’s do this!!!!!

Friday Over

Not a bad start for my first night. I spent my first hour mulling over ideas during dinner. Over the course of the other 3.5 hrs this evening I got some initial gameplay working and am feeling confident with my codebase. Looking ahead, I have a lot more graphic work I need to do this time around which will be a challenge for me. Oh well, should be fun.

You can play my latest version here: http://www.refrag.com/2010/04/23/ld48-go/

For now – it’s time for sleep.

Breakfast #1

I love breakfast. Here’s my first breakfast of the day. A tasty Americano with 49th Parallels Epic Espresso beans plus a yummy Pop-Tart. Mmmm! Sugar and caffeine! Day Begin!photo

Saturday End Update

Saturday is over! I spent far less time this Saturday than I did during LD #16 which is probably for the best. I’m fairly pleased with where I’m at. I’ve spent 16hrs of development time so far and I expect to log about 7 more tomorrow.

Flixel is a life saver. I find I’m not worrying about tech at all. I don’t feel like I have any tech risk on this project and anything I want to do is coming fairly easily. I’m also really really enjoying Flash Builder as a development environment.

I realize that my game has drifted from the theme a bit, but I’m having fun and that’s all that matters. Right? :)

Latest build available here: http://www.refrag.com/2010/04/23/ld48-go/#more-668

Good night!

Roller-Derby 20XX: Mega Islands of Awesome

rollerderby20XX_screen4

And I’m done. I had full intention of sticking more closely to the theme, but I was just having too much fun with this game. Would love to hear any feedback you may have. :)

Timelapse and full Postmortem coming later this week.

A huge thanks to everyone that provided feedback during development and of course a gigantic thanks to the organizers at Ludum Dare HQ. It was an awesome weekend as always.

Postmortem & Timelapse

Another great weekend. Ludum Dare is such a special event. You go into it knowing it’s going to be a boatload of work. You know you’re going to lose sleep and probably not eat very healthy. But all the pain and suffering is over in 48hrs and all you’re left with is a game you made yourself.

Play > Ludum Dare Build
Watch > Time-Lapse Video of Development
Link
> Ludum Dare #17 Vote Page

Concept Discovery:

LD #17’s theme ended up being “Islands”. To say I was unprepared for this theme choice would be an understatement. I spent the first hour sketching out possible ideas. None of them were really resonating with me. In the back of my head I really wanted to make a Roller-Derby themed game so I decided to shoe-horn it into the “Islands” theme. I talked over the concept with Melinda during dinner and committed to the idea of a Roller-Derby themed side-scrolling, platformer, “chase” game. My technology of choice was Flixel.

Flixel:

In all my previous Ludum Dare entries I’ve used my own custom libraries with the standard Flash Professional IDE. This generally meant a lot of copy and pasting code snippets and writing up simple classes from scratch. After LD #16 in December I started learning Flixel along with Flash Builder. I hadn’t yet built anything to the complexity I was going to attempt with my LD#17 project.

Flixel did not disappoint. It was extremely easy to work with and iterate rapidly within. I had a side-scroller with enemies and dynamically generated platforms within only an hour or so. I’d never used the FlxBlock object before, but these handy items created my random, dynamically generated world.

I actually found I had far fewer excuses to hide in my code. The stability and ease of building my tech meant I was forced to spend far more effort on art and gameplay tweaks. It’s way easier to put off making better art if there’s a tech bug to squash.

Art:

I really really pushed myself here. I really don’t think I’m a good artist when it comes to drawing things. It took a butt-load of effort to start drawing out the roller-girl sprite sheet. I don’t think my sprites turned out very good, but I’m just impressed that I managed to get them to the level they are at.

My background tiles I’m a lot happier with. I used some reference shots from MegaMan 6 and basically copied the lighting techniques pixel by pixel.

Using the typical NES Palette was also something I’ve wanted to do in a long time. It took a bit of trial and error over the weekend to get my Photoshop workflow down such that I was always exporting .png files with exact NES colors. I’m particularly impressed with my title screen which has a photo of me (taken on Sunday morning).

Pressure:

I barely felt pressure this weekend. The confidence of working from a strong codebase with so few unknowns meant I was rarely in the situation of having crazy annoying showstopper bugs. I kept my scope very tight figuring it was better to polish something small than to overreach. In the end I decided to submit about 4hrs before the competition end time.

I mainly stuck to my typical schedule of Concept Discovery & Prototyping on Friday night, Production on Saturday, and Polish & Tuning on Sunday. This has worked well for me on two LD48 entries now.

Overall:

I got to do a lot of new things this weekend:

  • Build a platformer
  • Complete a reasonably sized project in Flixel & FlashBuilder
  • Go outside my comfort zone with pixel art
  • Play with the NES Pallette

I did all of this without stressing too much or hurting my brain nearly as much as LD #16. I wasn’t taking the game too seriously either (as you can probably tell) so I had a hell of a lot of fun just making it as absurd as possible.

My end game barely connects to the theme of “Islands” so I’ll most certainly take a points hit there. But I do feel pleased in the fact that Roller-Derby 20XX: Mega Islands of Awesome is quite fun!

When is LD #18 again? What? Not till August? Booo…

Comment Response

First, thank you to everyone who’s played, voted and provided feedback on Roller-Derby 20XX: Mega Islands of Awesome. You guys are the mega awesome ones!

Some responses to some of the comments:

  1. Music: I’m glad everyone likes the soundtrack. As requested by skintkingle I’ve uploaded the MP3s and they are accessible here:  http://www.refrag.com/game-dev/roller-derby-20xx/
  2. Title Screen: Glad you liked this Terry. I had so much fun making myself into an NES style titlescreen. I saved extra time on Sunday just for this final touch. :)
  3. Collisions: Feedback around the “fishy” nature of collisions is good feedback to hear and very valid! In reality collisions are working exactly as I coded them. When you intersect an enemy there is a dice roll based on their “aggro-level” (which is randomly generated at spawn). There is a chance they will hit you. If they hit you you will either bump forward, or there is a chance you will fall. But yes I can totally see how this isn’t very intuitive. :) Surprisingly this dynamic tests better with more casual game players who seem to accept a “fuzzy” logic to collisions. The more experienced gamer seems to expect either binary rules or a way to pre-determine the result to better strategize. (Neato!)

I have some ideas on how to build on this game concept (thanks to your feedback!) and hope to flesh out and expand on this “world” in the near future.

Comments

SonnyBone
29. Apr 2010 · 01:07 UTC
Good to hear that you plan on expanding.

LD19

Anticipation & Preparation!

Panic starts to set in during Ludum Dare theme voting week and by-golly this week has gone by fast. I wasn’t able to participate in LD #18 so I’m excited to be getting ready for #19. My machines are all rebooted with a clean desktop and ready to rock.

Computers:
– iMac 27″ Core i7
– HP Laptop (in case I need to use any Windows apps)

Coding:
– Flash Builder 4
– Flixel 2.35

Graphics:
– Adobe Photoshop CS5
– Wacom Bamboo
– iPad apps (maybe)

Audio:
– sfxr
– Audacity
– GarageBand
– iPhone/iPad apps (maybe)

Other:
– Chat Mapper (if I go with a dialog heavy game idea)

Time Strategy:

Unfortunately I won’t get a chance to start right away on Friday evening so my usual plan will be out of whack. But roughly this is what I’ll stick to:

– Friday night: Think of an idea that fits the theme
– Saturday Morning: Prototype
– Saturday Afternoon/Night: Drive to Alpha (core content, fully playable, submittable if needed)
– Sunday: polish, tuning, nice-to-haves.

End of Saturday Results

Pretty pleased with where I’m at. Since I was only able to start in full today I got a lot done. The RPG and Platformer bits are all working relatively good. The atmosphere is hitting exactly what I want. I’m not content complete as I’d prefer to be at this point, but I’ll just have to hustle tomorrow. There wont be as much time for polish.

The concept is about self-discovery and fighting through the various stages of needs to hit self-actualization. Working title: Super Maslow RPG.

Playable build available here: http://www.refrag.com/gamedev/LD19/bin-debug/LD19.html

Abarrane – Post Mortem

Abarrane - A game about self-discovery

It’s now 26hrs post LD #19 compo end. The dust has settled, my brain has had a chance to wind down. It’s time for a post-mortem.

>Play Abarrane

>Watch the Time Lapse of Development

The Theme & My Idea

Ludum Dare 19’s theme was “Discovery”. I wasn’t a fan of it considering a year ago the theme was “Exploration”. But the bonus is it did give everyone a lot of creative leg room. On my ride back home after derby practice on Friday night I started brainstorming ideas. I settled on focusing on “self-discovery”, doing something a bit surreal, and having levels based around Maslow’s Hierarchy of Needs. The idea would be that the player would battle through each of their stages of needs only to reach self enlightenment.

The game would play as a side-scroller / RPG hybrid. This gameplay concept is something I’ve wanted to prototype for Granville for months now.

I knew immediately that my idea was ambitious. I’ve never made a platformer with levels before nor have I ever coded an RPG battle system.

Screenshot from Saturday Morning

Time Structure
My Ludum Dare time structures are very consistent. Prototype on Friday. Build the whole game on Saturday. Polish and tweak on Sunday. This structure couldn’t be applied this time around. I had a roller-derby written test and practice on Friday which caused me to miss the first 5hrs of the compo. I got home at 11pm and was only able to to spend a couple of hours fleshing out my idea and starting to write an RPG battle system from scratch.

I knew that it was likely that I’d still be building core-content into Sunday but committed to the submission deadline and pushed to see how far I could get.

Saturday was incredibly productive and I had the core battle system running before dinner. That evening I connected the battle and platformer bits, built the first couple of levels and got the critical pieces of the game done and working well.

Sunday morning was all about finishing all 5 stages of platforming. Sunday afternoon I spent polishing and playing with the difficulty (through the various enemy and hero stats). The difficulty curve for an LD game is tricky. I only like to keep the player’s attention for 10 minutes max. With over 200 games to rate, I want every player to have a reasonable chance to finish my game before their attention wanes.

Technology

One of the first tests of the platforming working


Sticking with the now familiar Flixel libraries meant little time futzing around with tech. I used some of my pre-baked  platforming functions and a set of dialog classes I’d been working on. I was reasonably happy with my starting codebase and it’s starting to show that I’m slowly building up my own set of classes and functions which make new projects start a lot smoother.

The hardest tech piece this weekend was figuring how to copy the Flixel buffer for the blur effect when you enter battle! I thought for sure I was going to have to drop this feature. I wasn’t willing to invest more than an hour figuring out so I was glad when I did.

Art:
Clearly art was not my priority this time around. However I am pleased with how I worked with the limitation on time and talent. I kept the palette greyscale with the only colour being flashes to convey information during battle. The art was minimalistic but stylized. I played with the screen shake and blurs to add to the surreal atmosphere.

Pressure:

End of Saturday Progress


My scope was ambitious. Had things not have worked out as smoothly it’s clear I wouldn’t have had a submittable game by the deadline. But I would have been ok with that since the prototyping exercise would have been valuable nonetheless.

I felt more pressure than I did during LD #17 and spent a few more hours in development. But the pressure was manageable and I was able to produce a deeper game by pushing the scope a bit.

Overall:

I got to do a lot of new things this weekend:

  • Build a platformer with levels made in Ogmo
  • Build an RPG battle system
  • Use text written by my better half

Abarrane came together a lot better than I was expecting. I was able to explore some really dark themes and have a lot of fun doing it.

P.S.

The Significant Other Factor
Melinda won fiancee of the year this weekend with all her support. She kept me fed. She kept the house clean. She provided feedback and emotional support. She even provided ALL of the enemy name, enemy special attack and random battle dialog text! On Saturday morning I mused “Hey if you want to help, start coming up with some enemies that you’d encounter as well as their special attack”. A couple of hours later I was handed an Excel doc formatted perfectly for a .CSV export full of excellent content.

Abarrane has 49 lines of random battle colour commentary and 67 enemies all with unique attacks. All of this was thanks to Melinda.

Comments

21. Dec 2010 · 03:41 UTC
I’m sorry, did you really have a “roller-derby written test”? That sounds so made up.

Bear-Thing sez: Jammers Need Love too

Happy voting and commenting everyone. :)
Have a great holiday season and I hope to see a bunch of you at GDC in February.

Tags: bear

Comments

22. Dec 2010 · 17:32 UTC
+1
24. Dec 2010 · 12:34 UTC
I like the timing of the tummy rub.
06. Jan 2011 · 00:11 UTC
yeah, i think i should do some tweaks to the system this year to encourage jammers more.

Roller Derby 20XX – Post Compo Release


Roller-Derby 20XX: Mega Islands of Awesome (my April 2010 Ludum Dare entry) has been rebuilt from the ground up, sponsored and released under a shorter title “Roller Derby 20XX”.

Play via Kongregate (English Leaderboards)
Play via MiniJuegos (Primary Sponsor) in “HD”

I always intended to revisit this game post-compo but it took many months before I actually did anything about it. The talented musical stylings of Amon26 and exquisite pixel-artistry of Paul Veer made the game come to life. As for me, I rewrote a lot of the code and tweaked the controls significantly from the original release.

Actually going through the process of releasing a game, finding sponsorship and distribution was hugely rewarding. I learned so much that will put me in a stronger position if I decide to do another sponsored Flash game. Financially, Roller Derby 20XX was a break-even proposition. I was able to pay the artists and FGL’s 10% cut. Which is fine. The experience was far more valuable to me than any monetary gains.

Ludum Dare has been a life-changer for me. I don’t have much free time and I’m not disciplined enough to spend an hour or two on game development every day. But I can free up a weekend and know that I will have something prototyped after 48hrs. Sometimes these prototypes are worth expanding on.

I recommend to anyone: take one of your compo entries, polish it up and throw it up on Flash Game License. Just experience what it’s like to go through that process.

Total investment in Roller Derby 20XX: About 150 hours. Value gained from the experience? Priceless.

Comments

22. Feb 2011 · 18:38 UTC
Really fantastic to see this ‘all grown up’ ! 😀 Congratulations!
22. Feb 2011 · 22:15 UTC
I think I’ll take your advice. Does FGL like C++ games? 😛

Seriously, though, great job on this! There was something about the original that made me think you could pull it off.
Nugsy
23. Feb 2011 · 12:59 UTC
Ridiculously addictive. I’ve been playing it for about an hour now, and i’m not ready to stop!
24. Sep 2015 · 23:33 UTC
Thank you for this game. I enjoy playing :)