About athanazio

Entries

athanazio's Trophies

Ludum Dare Donor
Awarded by PoV
on May 7, 2009

Ratings

OveFunInnThePolGraAudHumTecFooJouTim
322145323
2231344224
32324333
33423422
431134333
3221444323
2331133235
334435242
333234444
2131344335
32213434
33343433
22323343
322125433
334234334
323244432
2.812.382.811.753.004.063.332.822.87-3.86-

yoyo says ...

Neat graphics.

5parrowhawk says ...

I'm not sure whether it's an innovative use of the theme, or out of point.

X-0ut says ...

I destroyed over 100 piggies.. which brings me to my question, is there a goal to all this?

Nice cute gfx :)

Entar says ...

Fun idea, though I'm not sure what it has to do with the theme...

Endurion says ...

Looks nice, there's a visible gap between some landscape parts (problem of Löve?)

The gameplay is somewhat bland, also, I, the fish, can fly in the air?

Could be more fun with better controls. Where's the wall though?

ondrew says ...

Nice graphics ans sounds, but I haven't found any wall :).

The game might be more fun, if you could pick up the cans from the sea bottom more easily. Pushing them up the hill, slows the gameplay too much.

lucasshrew says ...

Awesome GFX and a funny game...but i don't see much of the theme in it.

georgek says ...

Great visuals, and it was cool to push all the garbage around. Overall a relaxing experience.

noonat says ...

I couldn't figure out how to destroy piggies :(

muku says ...

There didn't seem to be much challenge, so after killing a couple of the bad dudes I just quit. Is there a way to die/win? The overwater physics are weird, to say the least. Also, enemies just popping out of existence isn't too satisfying.

On the plus side, pretty graphics, good ambient sound and quite entertaining mechanic (lobbing bombs at the ships) for a while.

agj says ...

I'm swimming in the aaair.

nilsf says ...

Beautiful graphics, nice sound, but off theme and not much fun.

Archive for the ‘LD #14 – Advancing Wall of Doom – 2009’ Category

Diodontidae – postmortem

Posted by
Saturday, May 2nd, 2009 10:07 pm

I believe a better name than post mortem would be lessons learned, so let’s see my lessons learned from the  competition. I would love to read this before the compo, as I can’t make the time go backawards, let try at least to help other newbies.
1. create the menu navigation at the start of the competition
As I was fighting agains some physics problems during the development process most of the menu was left behind. Then I realized 30 minutes to the end that my menu would be an image =) and a play button…

The lesson on this would be, use time in the middle of the nightmares to do these brainless activities, because what can go wrong while build a menu ? =)

2. draw in the paper build and color in the computer
That helped alot, I save my day manipulate the lines with inkscape, but … in order to slice images I have a nightmare with inkscape, go with Gimp works as a breeze

3. dont split images, let the engine split for you
ahhhh I spend some hours cutting images lol !!, could use something like http://love2d.org/docs/love_graphics_draws_1.html to draw a subsprite of the image …

4. make physics work for you
Oh Well after the physics hit me in the head, I learned some details and was able to make it work in a decent way, special note for the boats that hang around over the sea, for that I created a sequence of x,y that is the path to the boats, and I try to follow the path, I believe if I make the water line as an object and change its group to only colide with the boat would be the best to move the boat around.

5. clean the tables in one place only.
Not sure why, buit when I was removing items from my objects list in teh collision handler the LOVE was just crashing … workaroiund that I found : flag to items to be removed and remove in the update() method and one by one from each table, this is call at the end of the update() for each cleanable table :

[code]— clean the tables
function cleanTable(table2Clean)

for n=1,table.getn(table2Clean),1 do
if table2Clean[n].dirty ~= nill then
table2Clean[n].poly:destroy()
table2Clean[n].body:destroy()
table.remove( table2Clean, n )
break
end
end
end
[/code]

and at the collision handler, I dont remove the pig from the list, just flag it
and I believe that this would be a nice way to animate the pig booom =)
by using a multistate, like alive/almost dead/dying/im outa here :)
would change the image section, or play an animation … and at the end remove from the list
that would be great …

[code]
function killThePig( id )

love.audio.play( audioCollision, 1 )
pigsKilled = pigsKilled +1

for n=1,table.getn(pigs),1 do
if pigs[n].poly:getData() == id then
pigs[n].dirty = true
break
end
end
end
[/code]

6. reusable files should be in a folder
I’m using for labels the .lua classes that I made called LOVEly-eyes, but I had this problem with the Text object that wasnt transparent … Oh well I went in the code changed the super class, Rectangle to handle this and the Text is transparent by default, cool, but but but … :) after that I just copied all the files from the LOVEly-eyes folder to my game folder … too bad because I copied a main.lua file together … If I wasnt using subversion would be a nightmare … now LOVELy-eyes are in a separated folder =)

7. use a version control system
I used subversion, saved me when I made an stupid folder copy … revert and just lost some minutes of work… bu remember keep on committing =)

8. put together a zip with everything
Better that just the .love file, create a package with the execs, the best would be create an installer.

9. level up level up !!!
people like rewards, so more than the score I should add level concept, just with faster attack of the pigs, or a different scenario with different speed .. hummmm that would be cool a .lua file for each level :)

10. collision has 2 sides … A and B
It took me some time to realize that A and B collision data, first they are the DATA from the polygon nothing else, just disconnected data, not a reference, not and pointer … hehehhe string data what makes very nice and unplugged from the code, and you have to test both sides, if wherever A colide on B and the oposite, this was my colision code

[code]function collision(a, b, c)

if string.starts(a, “pig”) and string.starts(b, “battery”) then
killThePig( a )
removeTheBattery( b )
elseif string.starts(b, “pig”) and string.starts(a, “battery”) then
killThePig( b )
removeTheBattery( a )
elseif a == DIODONTIDAE and string.starts(b, “food”) then
eatFood( b )
elseif b == DIODONTIDAE and string.starts(a, “food”) then
eatFood( a )
end

end

function string.starts(String,Start)
return string.sub(String,1,string.len(Start))==Start
end
[/code]

note that I used start() because I add the object id after the type, so I can grabb it from the list, something like “crap_2”, “crap_3”

11. scroll the view is possible Luke… use the force !
Ha ! not the force, at the end I solved the screen scrolling with a simple solution, calculated a shif from the main character and update this shift in the update() method and every single draw has this shift. So the camera is following the character, thats stays in the screen all the time, and to avoid the char to drop outside the world I add invisible walls on left and right side and check if the cameraX is in the possible range,

this in the start of the code

[code]
startCameraX = love.graphics.getWidth( ) / 2
startCameraY = 200

cameraX = -startCameraX
cameraXLimit = {}
cameraXLimit.start  = 0
cameraXLimit.finish = -2905
[/code]

+ cameraX on each draw
[code]
love.graphics.draw(diodontidae.image,
diodontidae.theChar:getX() + cameraX,
diodontidae.theChar:getY())

—— draw the batteries
for n=1,table.getn(batteries),1 do
love.graphics.draw(
imageBattery,
batteries[n].body:getX() + cameraX,
batteries[n].body:getY(),
batteries[n].body:getAngle() )
end
[/code]
this on the update()

[code]    cameraX = startCameraX – diodontidae.theChar:getX()

— keep the camera in the boundaries
if cameraX > cameraXLimit.start then
cameraX = cameraXLimit.start
elseif cameraX < cameraXLimit.finish then
cameraX = cameraXLimit.finish
end
[/code]

Diodontidae necandi – final version !

Posted by
Sunday, April 19th, 2009 6:50 pm

YEs ! YEahhh

Helpthe little Diodontidae to clean up the sea !

download here the LOVE player and then
download the game diodontidae_necandi_lurumdare14.love

or download the Windows package here Diodontidae_necandi_LurumDare14_Win.zip

Diodontidae necandi – almost there !!

Posted by
Sunday, April 19th, 2009 3:52 pm

almost there !!

  • the colisions are ok now
  • the fish eat the food garbage
  • push the batteries to the top
  • counting the number of garbage stuff

still missing

  • the colision to the pig
  • main menu
  • game over
  • score show

the sea is getting flood of crap !!

Posted by
Sunday, April 19th, 2009 6:05 am

argh !! the pigs are flooding the sea with the batteries, or cans ?, who knows =)

Diodontidae necandi – decoration ready

Posted by
Saturday, April 18th, 2009 8:02 pm

decoration ready !!! fishes hanging around the screen !! bounding boxes of collision regions defined, now its time to take a shower, the smell is getting really bad LOL

Diodontidae necandi ! graphics elements

Posted by
Saturday, April 18th, 2009 9:54 am

the brave Diodontidae will fight the polution in the Sea !

just cant sleep =)

Posted by
Friday, April 17th, 2009 8:31 pm

Just made the first draft of the game scene, and wrote some rules about the “Diodontidae” lets works on this tomorrow when I awake.

good luck all, c you tomorrow

less than a hour !!

Posted by
Friday, April 17th, 2009 6:02 pm

desktop ready

Posted by
Friday, April 17th, 2009 5:48 pm

I’m with 50% of the brain working … but the desktop is ready, run desktop run !! lol

lets do it

Posted by
Friday, April 17th, 2009 1:33 pm

Participated in the GlobalGameJam This year and was pretty nice, let´s see what I can in this challenge. will use Love2d game engine.

[cache: storing page]