studio_pamela

LD16

LD #16 Plans

This is our first time competing in LD48 (although not our first time competing in a short dev cycle contest). Hopefully, we’ve prepared enough; starting with a mostly-working engine instead of rolling one from scratch on contest day should help.

The obligatory stats:

Tools:

  • compilation and linking: GNU toolchain
  • graphics: GIMP 2.2
  • sound: MilkyTracker, SFXR
  • level: Mappy
  • engine & framework: preexisting custom 2D
  • helper libs: Allegro 4.2, DUMB, fBlend
  • target platforms: Win32, x86 Linux, GP2X (maybe)

We’ll see how things go.

More about the internals:

In accordance with contest rules, here’s a note on how the framework and tile engine work.

The game is treated as a series of states – a state for the main menu, a state for gameplay, and so on. There is a state structure that looks like so:

typedef struct
{
unsigned which;
void (*init)(void);
void (*tick)(void);
void (*draw)(void);
void (*load)(void);
void (*unload)(void);
} GAMESTATE;

Before we start executing any game logic, there is an array of gamestate structs that gets populated with the functions from the various states. Each state reads input, advances counters, starts sounds, etc. in tick() and does all its painting in draw(), and these both get called at a regular rate. init() is called to reset any internal variables to their start values, and load() and unload() get or free assets from disk.

Tilemap internals

This is fairly straightforward – a level has several planes, each of which are an array of bytes that control things like what tile should be drawn where, what eyecandy should be applied to it, entity spawn points and the like.

Other

There are functions to do a few graphical tricks like waviness in water tiles, a circular wipe, full-screen blur, etc.

Comments

mjau
06. Dec 2009 · 03:42 UTC
First, welcome =)
Studio PAMELA
06. Dec 2009 · 04:09 UTC
Personal we, sorry (there are actually two of us working together usually, but the other half of the team is away that weekend and won’t contribute any work).

LD17

Joining the fray

After having to drop out of LD48 #16 after about the fourth hour due to personal emergency, I’ve decided to come back and give it another go.  For added splash and dash, I’ve decided to impose the additional restriction on myself that my entry needs to run on my GP2X as well as Win32 and Linux (summer road trips coming up and all that).

-Tools-
compile and link: (arm-linux-)gcc (with friends ld, as, etc.)
text editing: Dev-C++
sounds: SFXR, GoldWave
music: MilkyTracker
graphics: GIMP (with MilkShape and POVRay, if needed)
stress management: AssaultCube, Winamp, XMMS, ModPlug Player

-Code-
I’ll be using a skeleton that

  • initializes Allegro
  • creates the window/gets access to the display and creates a double buffer (plus forcing a hardware blit on the device as a workaround for a bug on first- and second-generation ‘2Xes)
  • initializes a music-playback library (JGMOD, available freely, but current URL unknown)
  • provides a way for the app to over- or underclock at run-time (GP2X only)
  • provides a simple abstraction layer for reading key or joystick input
  • has a prebuilt main menu
  • has some fast additive and subtractive blending routines, courtesy of fblend (see fblend.sf.net)
  • has some built-in tilemap support with lighting effects
  • has a few built-in effects useful for screen transitions (wipe, blur, distortion map)

In spite of all the bullet points above, it’s woefully incomplete and doesn’t really give too much of an advantage (it probably would in the hands of someone capable, but that’s hardly me, heh).  In the spirit of fairness, I’ll post sources as a response to this ASAP (I’m at work now, so it’ll have to wait until later in the day).

-Misc-
Habanero hot sauce, Clif bars and energy drinks have been acquired.

And now, we wait.

Comments

First screenshot

First screenshot

This took way too long and looks really bad…

…but it’s something.

Comments

24. Apr 2010 · 19:55 UTC
I hate you, WordPress. :(

Giving up

Somewhere along the way, I’ve managed to introduce a ‘showstopper’, and I’m more or less stuck in an environment where I have no desk space and no quiet place to work.

I might submit something later on as ineligible, but it’ll have to be later in the week when I can work at home.

LD18

Belated statement of intent

I’m a bit late with the intent declaration, but meh, I’m late with the start, too.

I have to run a zillion errands tomorrow, so at least some of the work will be done on this:

My only friend.

As for the theme, I was hoping for double rainbow zombies, but I do have some ideas for using enemies as weapons. I’m planning to work until 4:30 (GMT-8), we’ll see how that goes…

Tags: desk

Comments

hdon
21. Aug 2010 · 03:48 UTC
Not gonna tell us what that machine is called?
Geti
21. Aug 2010 · 03:57 UTC
Yeah, that thing is awesome.
juhkystar
21. Aug 2010 · 04:00 UTC
Do want.

Went looking for inspiring music on the ‘Tube, found the following…

Comments

SonnyBone
21. Aug 2010 · 15:53 UTC
That’s what you get for looking for Chattanooga on YouTube.

Ah, finally, some progress.

...took longer than I wanted to, art is horrid, buuuuuut I'm that much closer to actually completing something.

...took longer than I wanted to, art is horrid, buuuuuut I'm that much closer to actually completing something.

This has kind of taken longer than I wanted it to, since I’ve started with just Allegro, GIMP, SFXR and Milky Tracker. I thought I’d try going from scratch without any basecode at all, just for kicks.

Still, the finish line is in sight.

Next to be added: the protagonist, and the ability to control him/her

Tags: enemies as weapons

Comments

21. Aug 2010 · 21:35 UTC
Uh, wordpress, what did you -do- to the aspect ratio?
21. Aug 2010 · 22:29 UTC
background art is kind of pretty

Honey! Dinner’s ready!

Yes, the label on the hot sauce does say 'Satan's Sweat'.Just ate this.

Tags: brisket, food, foodphoto, off-topic

Comments

lurreluck
22. Aug 2010 · 04:54 UTC
Wow, that looks amazing! I need something to eat…

Can’t draw? No problem!

Simply hide the fact that you’re art-challenged behind bad lighting.

theyvecomeforme-progress

Please watch this thread for a link to a first playable (win32 only at the moment, sorry).

Comments

theyvecomeforme-progress-2Finally, we’re getting somewhere.

I don’t know if it’s finishable in the time allotted, but this is DEFINITELY better than my past attempts, and it’d be very doable by the jam deadline, at least.

A real playable, this time: http://yetanotherbrokenlink.net/game-assets-transfer/ld48-18_build_2.zip

Comments

22. Aug 2010 · 06:55 UTC
I love this look. Can’t wait until I have time to try it out.
22. Aug 2010 · 07:12 UTC
I fixed the download, there’s actually map data this time, so our intrepid hero won’t fall off into the void…
22. Aug 2010 · 07:29 UTC
Someone’s been playing some Limbo, eh?

The application “They’ve Come For Me” has unexpectedly quit.

Yes, it’s true.  I’m dropping out of the contest, due to schedule conflicts.

So close, too!  Here’s what I had cooking:

compo_entry_fail

At this point, we’re about 60% into feature completion – the enemies, bullets and level progression still remain, but they’d have been doable within about four hours, I think.

I will definitely complete it in time for the jam, though, where everyone will forget about it among the many much more visually appealing Flash and Unity titles. :)

What was supposed to happen:

Contrived Storyline:

It’s the year 21XX, and after a war with robots, environmental ruin and famine, the remaining humans are being hunted down and purged by the machines.  The title refers to the fact that the protagonist is the last living human in his village, and they have, in fact, come for him/her.

Legend has it that, somewhere away from town and across the desert where the machines won’t venture, due to the risk of overheating, is the last remaining enclave of human civilization, and they’re looking to bolster their numbers and launch one last counteroffensive.  The protagonist, having few other options, has decided to cast his lot in with them, and must escape the robot sentries that are patrolling his/her ruined village.

The robots are impervious to attack by anything our unnamed hero has access to, but can be damaged by each other, and in fact, our hero can use this to their advantage by teasing the sentries to entice them to fire their phaser, then ducking.  Because the sentries’ head-mounted turrets cannot aim up or down, it is possible to trick sentries into killing one another, thus increasing the chances of escape.

The humans have erected force field machines in places that can severely damage inorganic material, and the toxic atmosphere can react with human skin such that it takes on some of the characteristics of metal, such that touching the force field could be fatal for humans, too, but fortunately, in the chaos of the raid on the ruined city, human nutrient capsules were strewn about, and eating these should sufficiently protect the hero from the negative side effects of the force fields.

Gameplay:

Get to the exit any way you can, including, but not limited to, tricking the robots into shooting each other.  Any touch from a robot or its phaser bolt is instantly fatal, and you’ll be forced to restart the level.

The exit is locked until you’ve collected a certain number of chits, at which time, it’ll visually change from red to white.

Things learned:

  1. starting from scratch with no basecode: adds a LOT of time pressure, but very doable (if you don’t care about good coding practices, comments, readability or maintainability) and oddly, kind of fun.
  2. the accuracy of a homebrew platformer engine varies inversely with proximity to the deadline.
  3. don’t eat a big plate of brisket, it will make you sleepy (well, duh!).
  4. faking greyscale in 16-bit colour is a bad idea (greenish cast in some parts of the display).
  5. Allegro 4.x, DirectDraw overlays in a window and Aero don’t mix (apparently – I don’t have Win7 myself, so I’m basing this on reports from IRC)

I’ll post another playable before leaving for the ice rink.

Comments

ippa
22. Aug 2010 · 18:09 UTC
Really like the dark gfx and the black player .. good thing there’s a JAM with 24 extra hours :)

Mini-LD #21 – Statement of ineligibility

Yep, I’m a-goin’ for it. However, I’m breaking the rules in two important ways:
1) I’m blithely ignoring the theme and doing double zombie rainbows instead (see my comments in the announce thread for why fear really needs more time to do it justice).
2) instead of 48 hours of calendar time, I’m doing 48 hours of compute time.

I am timelapsing this, and there is a clock visible in the display to accurately assess how long it takes. I’ll be pausing the clock when I’m not at my station (due to shopping, being stuck at my day job, etc).

As usual, I’ll be working in Allegro 4.4, and possibly AllegroGL, with GIMP, Milkshape, MilkyTracker and SFXR rounding out the tool suite.

I have some vague bullet hell ideas, and some kawaii/moe chibi zombie girls bouncing about in my head – should be fun!

Tags: cheater, fail, mini-LD #21

Comments

TheGrieve
15. Sep 2010 · 10:14 UTC
Gotta admit, I love the 48-hours working time, as opposed to 48-hours calendar time. I might actually like the idea enough to steal it…..

MiniLD progress, part II

I’ve thrown out everything I had the other night and decided to restart this afternoon.  Here’s the design so far:

design1design2design3design5

Presumably, we’ll have four colours of gem, I haven’t decided yet.  I have decided that there shall be bullet hell bosses, though.

Yes, I’m aware it’s been done before, I don’t care, I <3 shmups :).

Also, if any of you are at SuperHappyDevHouse in Mountain View, California, stop in and say hello! I’m in the Saturn conference room upstairs.

Comments

18. Sep 2010 · 20:58 UTC
Well aware that this is the wrong weekend, I’ll be out of town the actual weekend, thus this, since it’s already been stated that participants could play fast-and-loose with the rules a bit, since it’s not being judged. This is mainly to make myself stay on task…

LD19

My own personal December Challenge

For various reasons I don’t want to get into, I wasn’t able to take part in the October Challenge, nor the previous mini-LD, but I finally have the time, motivation and inspiration, so I’m joining the party only two months late.

My target platform is XBLIG; for the purposes of the challenge, if I have successfully submitted a title that works like I want it to by the end of the month, I’ll consider it a win, since I don’t really know how long the review process takes and there’s probably a monthly or quarterly lag between first sale and first pocketable dollar.

As for the game itself? No idea yet.

I am in!

My basecode isn’t ready yo be turned in yet, so it’ll be a Jam entry most likely, but yep, entering.

More later, when I’m not typing on a Pandora.

Declaration of Intent to Declare Intent

After a whole lot of false starts that had to be abandoned due to lack of available time and one ‘almost there’, I’m back for number nineteen and ready to go, and hoping to submit the first entry specifically aimed at OpenPandora users (win32 and x86 Linux builds will be provided). As dictated by tradition:

  • Lead Developer: Me
  • Artist: Me
  • QA Lead: Me
  • Languages: C, Makefilese, XML
  • Editor: Dev-C++
  • Tools: gcc
  • Libraries: Allegro, DUMB
  • Graphics: GIMP
  • Sound: SFXR, GoldWave
  • Music: MilkyTracker
  • Morale Management: Assaultcube, DeathSmiles, jungletrain.net
  • Physical Fitness: Bridgepointe Ice Chalet
  • Catering: Me
  • Kissing Scene Choreographer: Pam

Colour me excited!

Tags: LD19, Rainbow, zombies

Comments

Sos
14. Dec 2010 · 22:24 UTC
[assumes proper received pronunciation] What for a splendid choice, there for a once!

LD20

public IntentDeclaration id = com.ludumdare.getIntentDeclarationFactory().spawn();

Got permission to leave work early, told the girlfriend I’d be unavailable on that Saturday, loaded up on cheap energy bars, prepped and ready to go!

The usual:

  • Hardware: Eee 1201n, some crappy $2 USB mouse, Canon Powershot SX 120 with grit in the optics, a brain.
  • Targets: Win32, GP2X (maybe), OpenPandora, x86 Linux, source tarball.
  • Code: GCC 4.4.5, along with as, ld and friends.
  • Toolkit: Allegro, AllegroGL as needed.
  • Sound: SFXR, MilkyTracker.
  • GFX: Gimp, Misfit Model 3D (maybe).
  • Other: Graph paper, sketch pad, pencils, celery, carrots, trail running shoes, hella* Red Bull.

If the rules are amenable to it, it would be nice to do a farming-related game, and to do something that could be entirely stylus/mouse driven, but we’ll see.

*Of course ‘hella’ is a word, don’t be ridiculous.

Comments

22. Apr 2011 · 18:50 UTC
Invalid token ‘=’ in class, struct, or interface member declaration.
22. Apr 2011 · 19:07 UTC
Hey, you’re right! Oops.
22. Apr 2011 · 20:55 UTC
Build Successful.
22. Apr 2011 · 21:19 UTC
OpenPandora, eh? Nice!

Pre-contest framework declaration

In the interest of rule compliance and fairness, here’s what I’ll most likely be using for startup/init code: http://pastebin.com/0s2bsazw . All sounds, music, timing, image format loading and input will be handled by Allegro or DUMB, and AllegroGL will be used in place of the EGL initialization stuff on desktops as appropriate.

The fact that it expands to exactly six hundred and sixty six lines is a bit of an ill omen, one feels.

 

Comments

26. Apr 2011 · 22:12 UTC
I might add that I left out the headers (oops), and that this crap is mostly OpenPandora-specific.

….and we’ve already hit our first snag.

Surprise, surprise, it looks like audio output in Allegro 4.x, along with UT, Wolfenstein ET and probably a bunch of other stuff is completely hosed on recent Ubuntu versions (thanks, Canonical, for wrecking backwards compatibility so we could hear your stupid bongos everywhere and thanks, PulseAudio for gratuitously breaking ALSA compatibility).  I’ve tried a few things to fix it, but it’s too close to contest time to be doing IT stuff.

Anyone out there have any suggestions for alternate distros that

  • have NVidia ION drivers either in their repositories or don’t die horribly with the ones from NVidia’s website?
  • don’t use PulseAudio (do NOT want), or have some kind of OSS emulation layer?
  • are likely to work with NForce ethernet?
  • are likely to work with RealTek 8192SE wifi?

Comments

29. Apr 2011 · 02:01 UTC
disable pulseaudio autospawning. it’s what worked for me in Maverick
29. Apr 2011 · 02:02 UTC
I will try that, thanks.
29. Apr 2011 · 02:15 UTC
i suppose that’s possible, but if you’re using allegro on any distro and it has a problem with vanilla ubuntu, you’re going to have the problem regardless. Also I find that my allegro stuff works fine on my ubuntu netbook, it’s just the mixer on my desktop that dies a quiet death with pulseaudio.
29. Apr 2011 · 02:24 UTC
Are you using the package from the repository, or did you build from sources? I’m building from source, with enable-static=yes, enable-alsa=yes and enable-oss=no, and all I get from exstream is ‘Unable to find a sound driver’.
GreaseMonkey
29. Apr 2011 · 03:23 UTC
Are you doing this with 16-bit output? Try restricting it to 8-bit output in allegro.cfg.
29. Apr 2011 · 04:27 UTC
Huh? I’m having none of these issues. Is it possible this is all OpenAL stuff?
29. Apr 2011 · 22:45 UTC
Thanks to everyone who tried to help. Unfortunately, I don’t have time to debug this further before contest time, so I’ll be competing from Win7 (I know this is lame, but I really don’t have a choice in the matter).

Bay Area Post-Mortem Meetup?

I know there are a few of us LDers in 510 and 408 – should we try to have some sort of celebration/commiseration event somewhere Sunday evening? Dave and Buster’s of Milpitas leaps to mind but anywhere we can get pizza and video games and/or wifi will work nicely…

 

Comments

winferno
30. Apr 2011 · 00:31 UTC
I’d totally be down if there is a way to make the location easily accessible to public transport, and hopefully a bit closer to Oakland/SF.
30. Apr 2011 · 00:42 UTC
Works for me, I am willing to go anywhere along BART.