What is this thing?
However they know- they've got to know- they know that the creator is merely mad at himself, disappointed even. These small lively things are loved and they are all part of a journey.
torsdag den 7. april 2016
Size
VR,Size,Stretchscale,up/down,all the way up/down,time changes,voice explains,other side of the realm,inner side of the realm.
mandag den 4. april 2016
3D in Game Maker, Family game
I finally figured out how to manage to get 3D to work in Game Maker! There are not much on this anywhere, and the stuff there is is super vague actually.
I might be posting some usable things that I've discovered later.
One thing that I still haven't got a grasp of is the d3d_transform scripts, it's like they do not behave the way I would imagine.
Sadly, because I haven't wrapped my head around the d3d_transform scripts I haven't found a way to point the sprites directly towards the camera. Here I must look directly at YoYo for not having implemented a d3d_draw_sprite and d3d_draw_sprite_ext script for exactly this. I would expect such script to be part of the package, and it would be able to draw a sprite in depth, pointing directly towards the camera, without perspective deformation at the fringe of the view, and the _ext could contain an angle argument for rotation around the forward axis of the camera and the usual scale arguments. Tsk Tsk Tsk YoYo.
Anyway - here is my d3d_draw_sprite script, it is super simple, and all it does is to hijack the d3d_draw_wall script, carve away some redundancy and add some important things.
sprite = argument0; //sprite to use
img = argument1; //the image to show, in the animation strip
xx = argument2; //x position
yy = argument3; //y position
w = argument4; //width of the sprite
h = argument5; //height of the sprite
z = argument6; //the depth, don't confuse real depth(which is more important)
var tex;
tex = sprite_get_texture(sprite,img);
d3d_draw_wall(xx-w/2,yy,z+h,xx+w/2,yy,z,tex,1,1);
I love the lo-fi look of a 480*270 game running at 30fps in a somewhat simple engine like Game Maker.
For the shrubs I made a system which does only handle them when they are close to the players - when a player stands on top of a shrub the shrub scales a bit up in X and scales all the way down in Y to make it appear as if the shrub is stepped upon. It works pretty well. Right now I can't handle a large number of shrubs, but I am sure I can up the amount if a bit of optimization is performed.
A random story/gameplay idea:
You run around in the backyard inside the city. There are fun things to do while playing the game in co-op, possibly with your son or daughter. When the game is being played between 8am and 6pm the game is a co-op experience of just messing about, and the off hours in is a single-player experience. After a couple of days of play, one evening the other, younger character is gone. Only a clue to where he/she has gone is left.
The older player will have to find the younger character again.
Another random idea:
You play with a younger individual, a little brother or a son or a daughter. The game will demand quite different things of you, as the younger player is likely not as skilled as the older player. This could be flipped if necessary. It is a matter of playing this with a less skilled player, it doesn't matter if the younger is the skilled one or vice versa.
So the skilled player will be helping the younger one, and the younger one will be communicating and discussing the situations with the older player. Both characters will have a certain skill-set or properties that are very different to each other. For example the experienced player will be doing some jumping, shooting. The less experienced player will be doing navigation, halping out, like pushing buttons, solving puzzles, collecting things, maybe even matching things (sounds a bit condescending, but it isn't, at least here it'll be for a cause, not just killing time. :D)
It is empirical to incorporate puzzles that demands the two to communicate, maybe even give the non-skilled player some opportunity to show his/her wit and knowledge of things that the skilled player might now have the slightest clue about.
One way to do this could be to concentrate more subjective opinion-oriented tasks to the non-skilled player and direct more hands-on performance based tasks towards the skilled player.
Main objective would be for this game to be super asynchronous, which is something not many games possess, even today, 2016.
Dialogue excerpts:
"It'll all collapse. Hon' we need to go find mom! She is in danger!"
"K"
...
"All of them! All of them is here! See!!!"
"They're coming closer..."
"They'll help us, they'll help us get up there"
"Ohoy all!!!" - "Help us get up there!!! Mom is there" - "We need her back"
...
"We lost it all, the world is broken now. And for what!?"
"I want to go back! I want the garden!"
"The garden was never anything."
"YES! IT WAS!"
"It wasn't" *pause* "It was... wasn't it?" *pause* "... it's all gone now."
"..."
"We had fun though. right... along the way we had fun."
"..." - "we did." - "remember that time when the scribble-thief got the rubies?"
"HA!" - "yeah I do." Pretty weird one, that scribble-thief"
"YAH! SO weird."
"Was he also in your mind then?"
"I guess... don't know if he was a boy or a girl"
"Nah you're right."
"..."
"Do you think this is it?"
"..."
"might be"
"I'm sure we figure something out."
"We will! Right?"
"..."
I might be posting some usable things that I've discovered later.
One thing that I still haven't got a grasp of is the d3d_transform scripts, it's like they do not behave the way I would imagine.
Sadly, because I haven't wrapped my head around the d3d_transform scripts I haven't found a way to point the sprites directly towards the camera. Here I must look directly at YoYo for not having implemented a d3d_draw_sprite and d3d_draw_sprite_ext script for exactly this. I would expect such script to be part of the package, and it would be able to draw a sprite in depth, pointing directly towards the camera, without perspective deformation at the fringe of the view, and the _ext could contain an angle argument for rotation around the forward axis of the camera and the usual scale arguments. Tsk Tsk Tsk YoYo.
Anyway - here is my d3d_draw_sprite script, it is super simple, and all it does is to hijack the d3d_draw_wall script, carve away some redundancy and add some important things.
______________________________________________________________________//d3d_draw_sprite
sprite = argument0; //sprite to use
img = argument1; //the image to show, in the animation strip
xx = argument2; //x position
yy = argument3; //y position
w = argument4; //width of the sprite
h = argument5; //height of the sprite
z = argument6; //the depth, don't confuse real depth(which is more important)
var tex;
tex = sprite_get_texture(sprite,img);
d3d_draw_wall(xx-w/2,yy,z+h,xx+w/2,yy,z,tex,1,1);
______________________________________________________________________
(the sprite, and img arguments could be left out for a more streamlined version,
now when I think about it, this is more a _ext, than a standard script)
now when I think about it, this is more a _ext, than a standard script)
-o-
A random story/gameplay idea:
You run around in the backyard inside the city. There are fun things to do while playing the game in co-op, possibly with your son or daughter. When the game is being played between 8am and 6pm the game is a co-op experience of just messing about, and the off hours in is a single-player experience. After a couple of days of play, one evening the other, younger character is gone. Only a clue to where he/she has gone is left.
The older player will have to find the younger character again.
Another random idea:
You play with a younger individual, a little brother or a son or a daughter. The game will demand quite different things of you, as the younger player is likely not as skilled as the older player. This could be flipped if necessary. It is a matter of playing this with a less skilled player, it doesn't matter if the younger is the skilled one or vice versa.
So the skilled player will be helping the younger one, and the younger one will be communicating and discussing the situations with the older player. Both characters will have a certain skill-set or properties that are very different to each other. For example the experienced player will be doing some jumping, shooting. The less experienced player will be doing navigation, halping out, like pushing buttons, solving puzzles, collecting things, maybe even matching things (sounds a bit condescending, but it isn't, at least here it'll be for a cause, not just killing time. :D)
It is empirical to incorporate puzzles that demands the two to communicate, maybe even give the non-skilled player some opportunity to show his/her wit and knowledge of things that the skilled player might now have the slightest clue about.
One way to do this could be to concentrate more subjective opinion-oriented tasks to the non-skilled player and direct more hands-on performance based tasks towards the skilled player.
Main objective would be for this game to be super asynchronous, which is something not many games possess, even today, 2016.
-o-
Dialogue excerpts:
"It'll all collapse. Hon' we need to go find mom! She is in danger!"
"K"
...
"All of them! All of them is here! See!!!"
"They're coming closer..."
"They'll help us, they'll help us get up there"
"Ohoy all!!!" - "Help us get up there!!! Mom is there" - "We need her back"
...
"We lost it all, the world is broken now. And for what!?"
"I want to go back! I want the garden!"
"The garden was never anything."
"YES! IT WAS!"
"It wasn't" *pause* "It was... wasn't it?" *pause* "... it's all gone now."
"..."
"We had fun though. right... along the way we had fun."
"..." - "we did." - "remember that time when the scribble-thief got the rubies?"
"HA!" - "yeah I do." Pretty weird one, that scribble-thief"
"YAH! SO weird."
"Was he also in your mind then?"
"I guess... don't know if he was a boy or a girl"
"Nah you're right."
"..."
"Do you think this is it?"
"..."
"might be"
"I'm sure we figure something out."
"We will! Right?"
"..."
-o-
søndag den 3. april 2016
C64-ish gfx for Reside
Commadore 64 - ish graphics are super fun to make.
Normally, I think, it is 3 colors per "tile" as long as one of them is the "background" color. In this particular image that color would be black. However for the most of these graphics I only use two colors in total per tile. If you look closely though the wire and the thingy-plates in the lower middle of the screen has three colors. This is simply because I have a hard time deciding on the limitations I am forcing onto this project.
As always I've almost already abandoned this, so I will not be working too much on this in future, if any at all.
One of the cool things I made for this is the smoothness that the little motor-cycle-helmet dude moves with. he moves in 8x8 pixel increments, which normally works fine on left to right movement because the tiles are 8x16, but it doesn't work (normally) for up and down movement. So I made it so, that when you move up or down, a black block is occluding the background behind, then the character moves 8 pixels up, a moment later, he moves the last 8 pixels up and the background is visible again.
Smooth Y movement. Smooth-ish.
Furthermore I made an airsupply feature, where air is emitted from certain objects, such as vents. The air is a particle that then tries its best to find the player. When it finds the player it adds air to his lungs, and the player can then breath. If the player does not have a constant airsupply the lungs will be emptied of air, and the there will only be oxygen in the players system to make him last for about 30 seconds.
Air-supply system.
Air-supply gui
There are three stages. The white one blinking is the last oxygen in the system, The red one (in the beginning of the gif) is the lungs with no air in them. Later the lungs are filled with air, and the white "last air" gauge is shot down.Additionally, to be clear on the C64 ish-esque-like gfx, I use that as a buzz. The "C64". It is a matter of setting up C64-like limitations, the limitations mind you, that I like. So my limits are: 8*16 "chunks. 3 colors max on one chunk, 1 color being the background color, in my case black. Nothing is allowed to move smoothly, unless measures are taken to secure the integrity of the chunks. Color pallette is limited as well, however not to the original C64 color pallette. The pallette I adhere to is the original Game Maker pallette - the reason for this is that I cannot be certain that Game Maker will remember a custom pallette from session to session, and there is something nice to actually just make the "out of the box" pallette work.
Abonner på:
Opslag (Atom)