Katamori

LD28

I give up. Sorry

After some research, it was proven that there are more problems than I expected. After ~20 hours of coding, I don’t have nerves for fixing them, so I give up this time. Sorry.

Now either I’m gonna find out something new within 10 hours or simply won’t do anything; I don’t know yet.

Either way, here’s my abandoned project.

My LD#28 confession

I made a very nice prototype of a tile-based 2D game, as usual. However, additional features works buggy, and I have no idea what to do. Also, I want intermission which takes way too long time to create.

I’m about to be disappointed. I don’t give up yet, but seems that I did the mistake I wanted to avoid carefully:  my game became way more complex than I expected.

In worst case, I’m gonna join for Jam, or even not finish the game. Either way, this event is still a great fun.

LIGHT OF HAPPINESS – THE SUPERMINIMALISTIC ART GAME!

LOHTIT

 

Okay guys, after 20 wasted hours it was not easy, but finally, a 6-hour minigame, Light of Happines is released! It was made in a seriously short time, please think about it while playing.

Try it out here! – Windows, OS/X and Linux are also supported!

love 2013-12-15 23-13-28-656 love 2013-12-15 23-13-40-000

Light of Happiness: gameplay video!

I created some extra nasty teaser for my Ludum Dare contribution, just to give you a chance to check it before downloading, trying and (I hope so) rating.

Watch it here!

Ratings! Light of Happiness vs. Hackfield

LD#28 is over, ratings are public! Let’s see the difference between a 27-hour and a 6-hour game!

#213    Mood    3.23
+14 in ranking
0 in rating -> exactly the same value as it was in Hackfield!

#317    Innovation    3.17
-26 in ranking
-0,1 in rating

#618    Theme    2.65
+159 in ranking
-0,61 in rating

#625    Humor    1.96
+159 in ranking
-0,44 in rating

#720    Audio    1.78
-54 in ranking
-0,55 in rating

#787    Graphics    2.31
-161 in ranking
-0,46 in rating

#835    Overall    2.56
-266 in ranking
-0,48 in rating

#882    Fun    2.24
-3 in ranking
-0,28 in rating

LD29

LD#29 – THIRDED!

After a kind of successful beginning, and an almost-failed attempt, I’m in for Ludum Dare 48 again – now, at the third time!

Everything is the same.

Language: Lua
Libraries: LÖVE
Coding: Notepad++ with LÖVE compiler
Graphics: Paint.NET
Sound effect source: SFXR (the SFX generator that was specially designed for LD)

About miscellaneous, things are a little bit different again.

Streaming/recording: I should make a Youtube livestream; only for non-Hungarian guys this time. I’m still thinking about it though, since I don’t wanna talk in English only, though 48 hours.
Energy source: after the experiences of 2 LD events, I guess I should F&CKIN’ SLEEP INSTEAD OF ADDICTING ON CAFFEIN

Can’t compose music? Use a music generator then!

Creating sound effects is not that hard (trust me), music is a little bit harder though.

Music must be composed, since it has strict criterias and complex structures.

Fortunately, we are living in the 21st century, when algorithms can do lotsa things, including MUSIC!

If you need help at composing music for LD29, then use Abudant Music, the procedural music composer!

Projectile physics for dummies [WARNING: MATH!]

I can still clearly remember, how many problem I had with making smooth-moving bodies  in my games back in the day, but I’ve improved a lot since, so I feel I have to share this knowledge.

The amazing fact that only midschool math needs for this stuff, so you are goddamn lucky, if you didn’t play Fruit Ninja or 2048 constantly during math classes. 😛

#1 the basic knowledge

Calculating the motion of any bodies needs to be able to calculate its positions in space. A coordinate-system is perfect for this, and you already get one all the time when you have a proper window on-screen. (my only experiences about it are Java and LÖVE2D, but I’m pretty sure it’s also true for every similar programming languages & environments)

In most cases, the (0,0) point on this is the upper left corner of that window.

#2 straight moving

So you have a window, and a body with some (x,y) coordinates. The texture that marks the body is displayed at (x,y) on the screen.

If you wanna move this body left, you have to substract a number (whatever you want) from X. To move right, you have to ADD a number  to X. Doing the same with Y makes the body move up (in case of substraction) or down (in case of addition).

It’s also the initial point of WASD moving in case of player characters: you have to give these commands to certain keys – giving special tasks for key-pressing actions vary on programming  languages & environments.

#3 straight moving, in any angles

Yeah, that’s fine yet, but if you want to move on a way that changes both X and Y, then you have to call the angles!

There’s a cool stuff that helps us called trigonometry. To use its rules, we need a triangle: the first one is (x,y), the second one is a random point that lies on that line your body will also lie while moving; the third one is that makes a right triangle from these points.

Let’s be more precise: make a body that follow the mouse cursor. Then you get (x,y) – the body – and (mouseX, mouseY) – the mouse. Two points CLEARLY defines a line; it’s gonna be the track of your body. To make it move, you have to know the slope of this line.

And THIS is where you need a triangle – the third point is (mouseX, y), and this with the line I mentioned forms a right triangle. And well, the slope of the line equals to the tangent of the angle at the body!

But hey, we have formulas to calculate it by division! It’s gonna be the Y distance between mouse and the body / the X distance between mouse and body. Okay, it’s a tangent value, but in the 21 century, you can easily calculate a tangent value back into degrees.

After that, moving the body on its track is not that hard – even understanding is kind of easy, but I suck at English, so I definitely wouldn’t try to explain it: add cos(slope) to body’s “x”, and also add sin(slope) to body’s “y” – I mention again, that the result of the division is NOT the slope itself, only its tangent. Theoretically, you can calculate sin and cos from tan without exchanging back into degrees, but I haven’t experimented with that.

TLDR; TO MOVE A BODY ALONGSIDE OF A CERTAIN LINE:

a) GET THE SLOPE
A number in degrees/radian (I guess it matters only in LOVE2D) that has the next tangent: (mouseY – y) /( mouseX – x), assuming that all of them are positive numbers.

b) IN ANY STEPS IN WHICH YOU WANT TO MOVE THE BODY AWAY:

add the cosine of slope to “x” (body’s x coordinate)
add the sine of slope to “y” (body’s x coordinate)

#4 wind, gravity, and other vectors

I quickly realised that even without serious knowledge of linear algebra, you can simply use vectors. They are used in physics to show the amount and the direction of forces. They have 3 properties: an “x”, an “y”, and a “length”. x and y shows, where it pushes stuffs away, while length (which is calculated from x and y) shows, how strong it does that. in fact, I didn’t use it, because direction was more important for me.

Yeah, right, that’s fine, but how to use them? Well, it depends on that what do you want? In case of linear moving, without acceleration, just simply add VectorX to BodyX and also add VectorY to BodyX.

Example use: wind (though in my test I used acceleration for this, just for fun… :P), where WindVector has an y=0, and some x, that you have to add to or substract from BodyX. You already know the difference.

In case of acceleration, you have to store the increasing…ehm…”speed”. Well, yes, you actually store the speed.

Example use: gravity, where GravityVector has and x=0, and some y, and in every frame you have to do the next:

GravityAmount = GravityAmount + GravityVectorY
BodyY = BodyY + Gravity ( + sin(slope) of course)

In this case, there are two forces on your body: one that makes it move algonside a certain line, and one that does it in a straight down direction. The result is a parabola track and a mathematically (I guess?) precise implementation of vertical or oblique projection.

#5 endnote

I may be wrong in many aspects; one thing is sure: this method works amazingly well for me. I even hope that I used the right words; sadly I’m not familiar with “mathematical English”. Also, thanks for reading and have a successfull Ludum-ing!

– Katamori

Tags: tutorial

I’m sick of numbers. Please choose wisely.

I participate in LD since LD27, that time, theme was “10 seconds”. That was fine. Though, LD28 was about “You get only one”. Thas was still OK.

However, now I’m already having enough of numbers. I guess I’m not the only one, so please, damnit, PLEASE, CHOOSE WISELY in the Final Round!!!

Thanks.

– K

My final vote

névtelen

I had to do some tough decisions. Even though I upvoted it in Round 1, I have reservations about Break the Rules, for example.

In most cases, I decided to prefer the more interesting (Everything is Connected vs. Control more than One) or suitable (Ruins vs. Glitch) themes while choosing. Most of downvotes have come for preferring other themes, while some of them are just simply bad in my opinion (It never ends, Two Worlds, It’s NOT supposed to do that!, etc.)

I’m helluva excited BTW, can’t wait for Friday! Good luck for every contributors.

– K