Jump to content


wimlore

Member Since 09 Nov 2010
Offline Last Active Mar 17 2013 03:07 AM

Topics I've Started

Tetro

09 March 2012 - 04:33 PM

Hello GMC :) My girlfriend is a major tetris fan. So for her birthday I made her this Tetris clone I am calling "TETRO."

If you are unfamiliar with the original TETRIS please check out www.tetris.com to catch up on the last 20 years. Or just ask your parents. :biggrin:

Genre: Puzzle/Arcade.
File Size: 2.29 mb.
GM Version: 8.0.
Vista Compatible: Yes.
Changes Screen Resolution: Yes.
Heres the link: TETRO.zip //Updated April 6th, 2012

Screenshots:
Spoiler


Change Log
Spoiler


MODDING(new)
Spoiler


Side Info:
Just about finished with this one. Just have it posted here incase any further work needs to be done. Any ideas or suggestions to help me wrap this project up would be highly appreciated. This clone was built from scratch only using psuedo code found on the net. All other informations used to fill in the gaps were obtained at the tetris wikipedia. Enough of my bragging, let me know what you think :medieval:

Quicker Tilesheet Making(For me! Maybe you too?)

27 January 2012 - 06:02 PM

[SOLVED]Hello! Thanks for reading!

I have a proccess for making tile sheets in a top-down game that I feel requires too many steps.

My main goal is to find a simpler way to take a 4608x64 PNG Strip and convert it into a 512x576 PNG that I will use a background for a tilesheet.

For better understanding of these tilesheets, let me show you what a finished one looks like...
Posted Image
(This is a zombie's death animation, with his head exploding)

This is not a tutorial, I am just going to go over the steps I went through in order to produce this tile sheet.

Step 1: Create a Model/Figure in the free 3d program: Anim8or
Step 2: Create a 8-frame sequence animation
Step 3: Render the 8-frame sequence from 9 different camera angles at 256x256(72 images total)
Step 4: Create a Sprite in Game Maker, using all 72 rendered images.
Step 5: Reduce Canvas Sizes(Centered) to 50%(Cropping all images to the inner 128x128) in GM.
Step 6: Stretch(reduce) the images to 50% at excellent quality in GM.(Now all images are 64x64 retaining maximum detail).
Step 7: Save as a PNG_Strip in GM.
---Here is where I get annoyed with all my steps, the rest are while using the free art program: GIMP---
Step 8: Load PNG_Strip into GIMP.
Step 9: Using Hotkeys, I quickly settup a grid that is 512x64, with 64x64 snapping.
Step 10: Resize Canvas to 4608x576, resizing layers as well.
Step 11: Cut & Paste 512x64 chunks of the strip, stacking them from top to bottom(Repeate 7 times!!).
Step 12: Autocrop image to a 512x576 PNG that will be loaded and used by the Game.

So my dream is to be able to just run a simple console program that takes the PNG_Strip and stacks the 512x64 chunks for me. But before I go diving into IDEs and Compilers and having to learn C++ (which is what I think I will have to do) I was wondering if anyone had any clever ideas on how to shorten my proccess?

It is not THAT much work and I am getting faster and faster, I am just concerned about my poor tendons and all the clicking and dragging and what not. Thanks for your interest! And yes, that tile sheet is free to use... IF YOU KNOW HOW!! MWUAHA :medieval:

Top-Down: Tiles versus Sprites

09 December 2011 - 07:25 PM

Hello! I searched the forums and could not find a similar method to what I am doing with tiles. If you know of one please share the link with me, I really looked.

I made this experimental top down, zombie-thing, using the starcraft marine sprite. The sprite sheet was saved as a background resource, being used as a tile sheet, instead of a series of animated sprites. This is the design aspect I am trying to break down.

Here is the gmk: RWs_TD_Tile_experiment

No credit required if you decide to take/use anything.

How It Works:
The units will create the tile in their create event, then position their personal tile over them until they die, in which case it becomes just a regular gore-splatter tile. No draw-event code. However, collisions are still based on the unit's mask, which is still an assigned sprite.

The whole purpose of this method was to see how well it ran, and to me it seamed to worked very well! But my gauge of "working well" is very relative to me and I am curious if anyone could tell me if this method is indeed faster than having all objects use draw_events and an assigned sprite_index.

The GM Help only gave me hints that tiles could be used like this.

Questions!
-Does using masks take up the same memory as using a sprite?

-Do all my calculations for assigning the appropriate tile nullify the memory saved from not using sprites/draw events?

Any comments/suggestions are highly welcomed, I would like to refine this design choice and see it become something useful.

Thank you for reading, I hope you are having a great day!! :medieval:

[SOLVED]'Concenating' values into a binary number

06 December 2011 - 08:39 PM

Hello! Thank you for you interest in my problem.

The Issue:
I am trying to compress an object's variables into one huge number using bitwise operators. After successfully compressing 6 different variables, all of which have a positive value that is less than 255, I seam to have run out of room and can only fit 1 more byte in the number. I am trying to store a much larger number (the object's x/y coordinates) at the tail end of this compressed value, which would be a number with a range of 2048. But like I said, no matter how I shift the larger value, I can not fit anything more than another 255, leaving me with only 7 possible values I can compress. I am curious if this is a fixed limit, or I am doing something horribly wrong. Hopefully the latter!

So far my code for compressing looks like this:
Spoiler


So the Y value I did not attempt to compress since I could not get past the error I am experiancing now, but ultimately I would like to add it.

The way I decompress and extract the values is extremely ugly and I would love to improve on it. Here it is:
Spoiler


I am thinking the error has to do with my method of decompressing the value.

Here is the object's complete information:
Spoiler


Please, if you know of a tutorial/example/topic discussion that would help me I would really love to check it out. I have read topics on this type of thing but nothing was pointing me in the right direction  :unsure: .
Thank you for your time and I hope you are having a great day.   :medieval:

Solid Top-Down Movement Example

24 November 2011 - 10:57 PM

  • Title: RW's Top-Down Movement Example
  • Description: This example is intended to provide you with a method of allowing arrow-key events to override each other equally.
  • GM Version: :GM8:
  • Registered: no
  • File Type: .gmk
  • File Size: 0.01 MB
  • File Link: rw_td_movement_example from Host-A.net
  • Required Extensions: N/A
  • Required DLLs: N/A
Summary:
Thank you for your interest in my example!
Please read the Help File included in the example to have a complete understanding of how this movement method works.

The Issue: Did you ever notice how the events for the right arrow key override the left arrow key? This is due to the event order. Just like a stack of 'if statements', where the one on top will always execute first. I have tried many ways to work around this, and so far this is the best alternative I could come up with.

Mechanics: The object has five variables declared within it's create event. Four of the variables are to represent the four directions: up, down, left, and right. The fifth variable represents the direction the object will eventually go.

Each of these variables will increment in value while the corresponding keys are being pressed.

In the 'Key-Press Event' of an arrow key, the values of the other directions gets reset to zero.

In the 'Key-Release Event' of an arrow key, the value of that direction gets reset to zero.

In the Step Event, the variable 'max_value' uses the function 'max()' on all four directional values. Then, a switch statement compares the max_value variable with the four directional values to determine which direction the object will go, using the 'motion_set()' function.

The Results: Each Arrow Key Event has the capability of overriding each other. Thus, allowing the user to button mash arrow keys with more consistent movement.

Object's Information(Incase you do not want to download the example)
Spoiler


GMC Search Tags
GMCTUTORIAL GMCTOPDOWN GMCMOVEMENT