Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411526 Posts in 69381 Topics- by 58436 Members - Latest Member: GlitchyPSI

May 01, 2024, 10:00:29 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsProject Rain World
Pages: 1 ... 25 26 [27] 28 29 ... 367
Print
Author Topic: Project Rain World  (Read 1448609 times)
Dr. Cooldude
Guest
« Reply #520 on: July 12, 2013, 07:48:31 AM »

I really love the art in this game, it kind of reminds me of Another World.

Yeah, I'm finally back in Sweden again! The reverse culture shock is kind of freaking me out  Shocked

Velkommen hjem. Med venlig hilsen din nabo fra Danmark.
Logged
Zaphos
Level 5
*****



View Profile WWW
« Reply #521 on: July 12, 2013, 02:05:12 PM »

However, for any press stuff, I want it to be crystal clear that this is not a cool new game in development, but a guy goofing around on his laptop and making some glitchy mess that could potentially be interesting from a theoretical perspective.
It looks so cool though!  Are you planning to release it in some form anyway?  I hope so ...
Logged

How to Be a Tree | Voro | Realistic Kissing Simulator | twitter | Programmer at Epic Games
melos
Level 10
*****


View Profile
« Reply #522 on: July 12, 2013, 02:45:09 PM »

Could you do a more in-depth tutorial some time? (Unless you are very busy with the game but if it's mostly a technical exercise it's probably worth doing a tutorial thingy) And also some thoughts on what technical things would be needed to be done if you wanted to add shading?

This is really cool by the way.
Logged

play hydlide 2
Danik
Level 0
**



View Profile WWW
« Reply #523 on: July 14, 2013, 09:00:11 AM »

I just read half the thread, all the technical details are really interesting, thanks for sharing your process!  Looks like the game will really be something special, I love the visual style, the animation and the simple but focused mechanics. Can't wait to try it!  Smiley
Logged

JLJac
Level 10
*****



View Profile
« Reply #524 on: July 15, 2013, 02:07:45 AM »

Thank you all for your support! I can't believe how excited everyone seems :O Just remember: High hopes, low expectations...

Välkommen hem, käre landsman.
Tack, landsman! :D

When it comes to porting, the problem is that I'm using Macromedia Director, and in order to do things such as changing the screen resolution or recieveing gamepad input I use add-ons. While I could compile a Mac version (which I think would lag, because that's my experience with Director executables for mac) I wouldn't have the add-ons, so the game wouldn't be able to do a lot of important stuff. Sadly I think this problem would persist if you try to run it through some kind of windows emulator or whatever. Maybe someone here is a Macromedia Director / Mac guru, and can help me sort it out?

On the subject of operative systems, I just tried the game on windows 8, and it seems to work. That's good news. It's lagging horribly on my notebook though, but as long as it's running at all I'm decently happy. Would've been a shame if the thing was already outdated at release. Game pad works too, but needs some tweaking.

Are you planning to release it in some form anyway?  I hope so ...
Yes, I do plan to release it. It will be free to download and share, possibly with a paypal account where you can donate something small if you're in that kind of mood.

As a lot of people seem to be interested in the technical aspect of the game, I'll try to find time to write something up on that. The basic idea is very simple though: While a game character normally consists of one box that can collide with terrain, the RW character consists of two boxes. So, instead of having a character that's always head up feet down, we have a character that consists of an upper body and a lower body, and they are moving around independently but at a fixed distance.
Logged
The Monster King
Level 10
*****


FRKUC im ALWAYS ANGRY AAAAAAAAAAAAAAAAAAAAAAAAnerd


View Profile
« Reply #525 on: July 15, 2013, 07:45:25 AM »

i played this at arcade royale. it was hype. since i was the only B) PRO GAMER B) in a sea of hipster i ended up explaining to everyone exactly how I was pwning you then realizing there was only 2 stages vaguely fit for competitive play as only 2 of them had two hideouts. It was usually worth it to just hide unless you were playing against someone really good, getting to the bats wasnt easy
Logged
nikolail
Level 0
**



View Profile
« Reply #526 on: July 15, 2013, 11:59:53 AM »

"im using Macromedia Director" !!! Are you mad, i remember using it for few multimedia productions on cd-rom ages ago. This just makes everything even more awesome, kind a like Black Annex ( done with Qbasic ).
Logged
JLJac
Level 10
*****



View Profile
« Reply #527 on: July 16, 2013, 04:28:08 AM »

...there was only 2 stages vaguely fit for competitive play as only 2 of them had two hideouts...
Yup, that's fixed now!

...Are you mad...
I guess that might be a possibility. This is definitely the last game I make in director, and with that perhaps the last game that ever gets made in director...

Update 151
Sorted out a lot of smaller errors. Added the possibility to have different "control modes" for when you play with game pads - for example the possibility that it doesn't register vertical input as long as there is horizontal input, so that you have to push up or down very deliberately in order to have the character react. As it was there was some trouble that the character would suddenly get into crawling position when you're running, because you happen to nudge downwards. This isn't a problem with keyboard controls, obviously - if you press a button you know that you're pressing that button.

Game pad users can now map a pause button, which takes them to the menu from the game. This means that if player 1 is on a controller, the entire game including menues will be playable from the controller, so that there won't be any need to touch the keyboard or the mouse.

Did a little work on the world map.

Also, the game has for the first time been played with three players. It seems to work fine!
Logged
airman4
Level 10
*****


Need More Time !


View Profile WWW
« Reply #528 on: July 16, 2013, 04:59:43 AM »

I really love the art in this game, it kind of reminds me of Another World.

Yeah, I'm finally back in Sweden again! The reverse culture shock is kind of freaking me out  Shocked

Velkommen hjem. Med venlig hilsen din nabo fra Danmark.

yeah me too

I thought it was eric chahi spirit there haha !
it reminds me flashback also
but great original game , i'm not saying it's a ripp off
Logged

JLJac
Level 10
*****



View Profile
« Reply #529 on: July 19, 2013, 01:28:10 PM »

Update 152
Resolved some issues in the "Egg Hunt" game mode. Created a new function that makes it possible to repeat the level playlists. Created the functionality for a button that resets the game options to a default. Tweaked gamepad controls a little more. Resolved a few minor bugs.
Logged
draconiansolo
Level 0
**



View Profile WWW
« Reply #530 on: July 20, 2013, 09:20:35 AM »

This game looks really good!
I hope i get to play it eventually.
Logged
Carrion
Level 10
*****

crowbro


View Profile
« Reply #531 on: July 20, 2013, 03:04:58 PM »

I like the intensity of the game and look forward to playing it.
Logged

One-bit Punch
Level 0
***



View Profile WWW
« Reply #532 on: July 20, 2013, 03:53:29 PM »

This game looks amazing!! Shocked
Logged

artemi
Level 0
**



View Profile
« Reply #533 on: July 22, 2013, 06:05:21 PM »

Made an account just to say how awesome this game is! I read through the whole devlog so far, and this game looks amazing! I have a pair of leopard geckos, and they they sneak and scuttle surprisingly closely to how the lizards move in your game. You seem to have gotten an essential 'lizard' element down, somehow, in the fact that they really don't move the same way a mammal like a squirrel or mouse might.

I know it was a few pages, and thus months, back, but I wanted to point out something I saw with the face of the bears (though I think they look more squirrel or ferret myself). The sprites have no white glare to their eyes, giving them a hollow and haunted look. The face pics, though, DO, which makes them seem much more cartoony or animeish to me. Thats what pikachu has that the quoted Merry Melodies character doesn't; huge, happy glare to his eyes. http://www.dltk-kids.com/pokemon/adoptions/pikachu.gif

Forgive me for doing a minor modification to your posted pic, but look at the effect of solid colored eyes for the white and black bears as opposed to the pink and yellow; the white and black have a MUCH stronger hunted, spooky look. http://img.photobucket.com/albums/v143/artemi/RainWorld.png
« Last Edit: July 22, 2013, 06:17:02 PM by artemi » Logged
GamesOfEdan
Level 0
**



View Profile WWW
« Reply #534 on: July 22, 2013, 08:50:03 PM »

I'm really enjoying these forums. I look forward to browsing your dev log over the next few days.  Grin
Logged

Rostiger
Pixelhead
Level 5
******



View Profile WWW
« Reply #535 on: July 22, 2013, 09:53:28 PM »

I can only chime in with everyone, you are doing an outstanding job so far! Rain World has a wonderful, haunting style.
Browsing through the thread, I enjoyed details you are going into on a technical level, but I miss more information on the creature animations. They seem so life-like it's hard to imagine that they are only spritesheet based. Are you using some sort of procedural animation system or employing a physics system? If they truly are spritesheet based, would you post a sprite sheet and describe how you implemented the smooth movement and animation of a certain part, e.g. the death animation you added last?

If I missed a post where you go into detail on this please point me there!

Thanks and keep up the great work! Hand Thumbs Up Right
Logged

Clemens Scott
Co-Founder & Artist of Broken Rules
Chromanoid
Level 10
*****



View Profile
« Reply #536 on: July 22, 2013, 11:27:00 PM »

If you read the thread (and the old one) you will find many explanations how the animations are done.
It's procedural/physical animation.

If people are interested, I could go into more detail. The very basics of it is very... basic. You only need two functions: one to determine the distance between two points and one to give the direction as a vector from one point to another. With that you can emulate "chains", i.e. points moving about freely but being stuck to other points at certain distances.

So in my game, the player consists of two such points (upper/lower body) and the lizard consists of 3. Then I attatch to that additional points for limbs and so on. For example the tails of the creatures are several such points chained together.

On top of this stuff I draw the creatures, using simple sprite mechanics such as rotation. For example, the arm of a creature is drawn at the shoulder and then rotated towards the location of the hand point.

This is the reason why the creatures are one, solid color. In fact they consist of several sprites overlapping each other in awkward ways, and if there was any kind of shading on the sprites this would be visible. If I worked in a more reasonable software I could compile the whole body of the creature to one picture and then shade it, but I'm not, so the flat colors are staying. Instead I've tried to adapt my style so that it'll look ok.

When it comes to the more specific movement of limbs and so on it's a great deal of faking going on. The lizards for example do not grab on to stuff and pull themselves forward. Instead they move about with a magical force pushing them in whatever direction they are going. When a limb is too far behind the body it goes into a "search mode", looking for possible grasps in front of the lizard. Such a thing might be a wall, a pole, a platform or whatever. When it finds one, the limb connects to it, and then passively stays there until it's left behind by the body again. The magical propulsion force of the body is dependent on how many limbs are currently connected to terrain, making the speed of movement uneven and synced to the movement of the limbs (few limbs grasping - slow movement of the body).

If there is demand, I could make a more in-depth technical tutorial.

Pixel characters are most often a square moving against other squares, with
fluid animation painted onto it. However, you can still somewhat feel that
the character is a box, mathematically. I have tried to create a character
that looks like pixel art, but moves much more fluently, and has a body that
actually is affected by the surroundings. I still want to keep the levels blocky
and grid based though, to create an interesting contrast and put emphasis on
the softness of the character. Please tell me what you think.

Technobabble
If you have to mathematical points, each with their velocity vectors, you can easily create a "stick" with different elasticity. You do this by locking the distance between the points. If the points are further away from each other than your set distance, you move their positions and velocities towards each other, if too close you separate them. By making the force they're bound to each other with weaker, you get an elastic "rubber band", and you can also let one point do 70% of the movement and the other 30%, creating different weights for them. What you need is a function to determine the distance between points, and a function to create a vector pointing from one point towards the other. This is the basis of what you see in my demo(the creatures are mathematically boxes moving like this). From there I just improvise, and fine-tune the numbers like crazy.

Technobabble #2
I won't go into how to make a box collide with rectangles, beacuse I know that you can find a lot of stuff like that all over, and my solutions for this are a bit horribad. I will also assume that you know what a vector is, and that you know how to implement gravity and stuff like that. What I'm going to show you is how to create "atoms" or whatever you want to call them, that is points that are connected to each other to create a simple physics simulation.

So, assume that you have two points, Ax, Ay and Bx, By. These points also have velocity vectors, sAx, sAy and sBx, sBy. By adding the vectors to the positions you get movement, as you probably know.

You now need to create two functions, one to determine the distance between two points(I'm going to call mine diag, from diagonal) and one to create direction vector pointing towards a point. That is a vector with a total length of 1.0, only indicating direction. This can also be used for a lot of fun stuff, such as gravity wells and so on. I'm gonna call mine moveToPoint. These functions are heavy on the processor, so use them sparsely.

So this is what we have so far:

function diag(point1x, point1y, point2x, point2y)
  rectHeight = ABSOLUTE(point1y - point2y)
  rectWidth = ABSOLUTE(point1x - point2x)
  diagonal = SQUAREROOT((rectHeight * rectHeight) + (rectWidth * rectWidth))
  return diagonal
function end

function moveToPoint(point1x, point1y, point2x, point2y)
  point2x = point2x - point1x
  point2y = point2y - point1y
  diag = diag(0,0, point2x, point2y)
  if diag>0 then
    dirVecX = point2x/diag
    dirVecY = point2y/diag
  else
    dirVecX = 0
    dirVecY = 1
  end if
  return [dirVecX, dirVecY]
function end

Alright, let's move on. This part is simple, every frame do this:

function newFrameMovePoints()
  Ax = Ax + sAx
  Ay = Ay + sAy
  Bx = Bx + sBx
  By = By + sBy

  sAx = sAx*0.98
  sAy = (sAy*0.98) + 1.2
  sBx = sBx*0.98
  sBy = (sBy*0.98) + 1.2

  diag = diag(Ax, Ay, Bx, By)
  rtrn = moveToPoint(Ax, Ay, Bx, By)
  dirX = rtrn[1]
  dirY = rtrn[2]
  getToDiag = 17

  Ax = Ax - (getToDiag-diag)*dirX*0.5
  sAx = sAx - (getToDiag-diag)*dirX*0.5
  Ay = Ay - (getToDiag-diag)*dirY*0.5
  sAy = sAy - (getToDiag-diag)*dirY*0.5
  Bx = Bx + (getToDiag-diag)*dirX*0.5
  sBx = sBx + (getToDiag-diag)*dirX*0.5
  By = By + (getToDiag-diag)*dirY*0.5
  sBy = sBy + (getToDiag-diag)*dirY*0.5
function end

What you see is, separated by the empty rows: Adding the velocities to the positions, applying air friction and gravity to the velocities, retrieving the data necessary for the "binding" of the two points, and finally applying the bond. The points are now freely moving, but will always keep the same distance to each other, and forces applied to one point will realistically transfer into the other. As long as you draw the points after this has been done, they will always be displayed with the correct distance between them.

You see the "0.5"s after each row in the last section? Those mean that if there is a difference between the desired distance and the actual distance between the points, this point will stand for  50% of the movement made to correct the distance. If you tilt those numbers, so that for example point A stands for 85% of the movement and point B for 15% it will appear that B is significally heavier than A. If you make it so that the sum is less than 100% you will get an elastic bond, like a rubber band. You might want to tone down the movement of the actual positions in this case, and focus on the velocities. Other interesting choices you can toy with is to only affect the points if they are further away from each other than the desired distance, or only if they are closer.[/size]

Once you get the basics to work you can start connecting bigger structures of dots together, playing with the parameters. This is created with this technique only. For example you can create an array of dots, each connecting to the next one, and you have a rope! Fix the first node at your mouse position and whip away. This is also the tech behind my unfinished mega project freethinker, which brings me to another very important piece of advice; never start a mega project!

I hope this is helpful to you, and that I hit the right level (don't really know how much 80 hours is, it depends a lot on what you're using). Please do not hesitate to ask further questions.

Logged
Rostiger
Pixelhead
Level 5
******



View Profile WWW
« Reply #537 on: July 23, 2013, 12:25:00 AM »

Hey, thanks for summarising! The thread just has too many pages, comments and no filter options for my lazy self to find the according entries. So thanks to you again, sir! Gentleman

Also yes, I'd definitely be interested in a more in-depth tutorial on the body part animations. +1 on the demand list! Smiley
Logged

Clemens Scott
Co-Founder & Artist of Broken Rules
JLJac
Level 10
*****



View Profile
« Reply #538 on: July 23, 2013, 11:14:31 PM »

Forgive me for doing a minor modification to your posted pic, but look at the effect of solid colored eyes for the white and black bears as opposed to the pink and yellow; the white and black have a MUCH stronger hunted, spooky look. http://img.photobucket.com/albums/v143/artemi/RainWorld.png
Thank you sir  Gentleman When it comes to the creepy/cute factor for the main character, I actually want it to be creepy and cute, if that's possible. I know that the highlighted versions are a bit too anime, but I think a zombie version without anything going on in the eyes is a bit too... zombie.

I want to thank Chromanoid for the summarization of my many loose explainations. For those of you interested, try following the pseudo code - if you get stuck I'll try to help you. If people want to I could possibly make a proof of concept in as3, so that  you could look at the code yourselves.
Logged
pluckyporcupine
Level 9
****


View Profile WWW
« Reply #539 on: July 23, 2013, 11:41:35 PM »

Thanks a ton for that Chromanoid. I had missed a lot of the technobabble. That's clever. The way the sprites chain together looks plain fantastic.
Logged

Pages: 1 ... 25 26 [27] 28 29 ... 367
Print
Jump to:  

Theme orange-lt created by panic