Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

nesseggman

Member Since 09 Mar 2010
Offline Last Active Feb 16 2013 04:32 AM
-----

Topics I've Started

The Legend of Red Dragon Ranch (Now with Kickstarter!)

08 February 2013 - 07:50 AM

http://www.kickstarter.com/projects/77170229/the-legend-of-red-dragon-ranch

Kickstarter is now live! Please support this project!

 

Hey everyone happy.png You may remember me from posting on the beginner board somewhat regularly (if only for a short time) a little while back... Anyway, thanks to everyone's help, I found the direction and motivation to teach myself game design and programming, improved my abilities, practiced a lot, and now I've partnered up with a friend and a colleague to start a pretty ambitious game development project. It started as my attempt at my first really "big" game project... Something I would have to devote weeks or months of planning, and then who knows how long to create. I wanted to take a big idea I had and just MAKE IT HAPPEN.

 

I really felt I was ready. As I talked with my friends, they really enjoyed the idea, and my composer friend offered to work on the music for the game. Whenever I would mention the project (even something dumb like making my facebook status "spent 4 hours getting one bug out today :,c") I would find people begging me to finish so they could play the game. I've found a lot of support for the project and it's given me a lot of motivation. The project has grown and grown and it's getting so big I now have three dedicated members of the development team, and we're starting a humble kickstarter soon (it's in the review queue right now) in hopes of getting some funds to make this game everything we'd like it to be.

 

Since this was really the place where I got the original confidence to teach myself to code, develop, and design, I thought I'd come back and share a "gamedev.net bigger board success story" or something, hahaha smile.png I started out programming it "from scratch" in C++ but later realized that everything in the design could be done all the same in a 2D engine and made my prototype in GameMaker:Studio, which is pretty new and pretty great. Since I'm still a bit of a novice programmer (this is my first 'big' game after all), it has really helped me organize my game and keep my focus on the design without having to worry about so many other issues.

 

Anyway, now that you know the backstory, let me introduce to you the game project, The Legend of Red Dragon Ranch:

 

reddragonranch4squarebi.jpg

 

http://reddragonranch.blogspot.com/

 

It's a monster-training game that focuses on user play-style and care of the monster. It originally was just a curious idea in my head (I even asked some questions about pet games here when it was still a baby idea and I wasn't actually planning on creating it any time soon). Visit the link above to learn more. The "devblog" is not all that fleshed-out, but definitely tells a lot about the game if you read through the few posts that do exist.


Creating functions in GameMaker:Studio? And pseudo-enums?

20 December 2012 - 06:22 PM

So, I am throwing together a prototype for my pet game, and I figured I'd try GameMaker:Studio to make it faster, but it seems like GML is very... limited and confusing.

Anyway, I only need to pass a couple hurdles and I should be able to create a functioning prototype that I can use to test the concepts of the game and get others' input and stuff.

So, the first thing I wanted to do was create some functions that will take care of various calculations and stuff. And I'm already stuck lol. Well, none of the documentation on GML seems to be very explicit on how things are done. I logged into the GameMaker Community and it won't let me make a new post and I searched there and here and couldn't figure out exactly how they worked.

It seems like you make a Script, but I don't know how to define the arguments for it. It seems like the arguments are defined by variables you call argument0, argument1, etc. throughout the Script you make. So I guess the arguments for your "function" are based on how many argumentX variables you write into the Script...

Then the example in the documentation looks like this:

//clamp_x(xmin, xmax)
//maintain x within the given bounds

if x > argument0 { x = argument0; }
else { if x < argument1 { x = argument1 } }

... It looks like the "notes" remind you of what arguments the function can take based on how many argumentX variables are in the code. But then the comments also state that it's supposed to keep x within the bounds... but I feel like argument0 should be what they're calling "xmin" and argument1 is what they're calling "xmax" ... but wouldn't they be the opposite, based on what the function apparently does...?

I'm assuming the documentation just uses a flawed example? That argument0 would be the ceiling and argument1 would be the floor of where you're trying to keep x inside.

So if I want to write a function, do I just put any number of argumentN variables in the Script, and then make comments at the top to remind me how many I had and what kind of parameters this function should be taking?

This seems needlessly complicated X_X; I wish the documentation actually explained how it works. It pretty much just says "Scripts can be used like functions." and then gives that example from above with no further explanation...

Also, since I can't really create an enum with GML or make states with one, let's say I wanted the user to be able to choose one of 20 pets or something, and then this choice will persist for the rest of the game, even between Rooms. I've created a global variable for this, but is it possible to use strings and check for the strings to use it kinda like an enum? Like, let's say they picked Pikachu (I'm not making a Pokémon game; it's just an example) then I could set global.petSpecies to "PIKACHU" and from there on out, on each room, I will need to display their pet. So I will create a function that will, through a tedious set of if statements, check all of the monster names, and then an if global.petSpecies == PIKACHU statement can tell the pet object that displays to change its sprite to the Pikachu set... does that seem like it will make sense? I honestly can't think of a better way to do it using GML :\

I'm using the free version of GameMaker:Studio so I can't create my own extensions using C++, nor can I use extensions others have made... I can only use the tools that GM:S comes with.

EDIT: And what all kinds of arguments can a Script function take? Like, could I pass a variable (rather than a value) or a pointer (are there even pointers in GML...?) to a variable? I'm assuming no, but who knows. The documentation does not explain how this works at all.

Game save system?

20 December 2012 - 05:27 AM

I am working on a project in C++ with Allegro. It is a pet game. It has a "time" system (it is menu-based/turn-based game... menu options cost "time" and after elapsing so much time you go to the next "day"/turn and after so many "days" your pet grows up, gets old, and dies... so you have to use your actions wisely to raise the pet the best you can before it dies). Your pet can enter different kinds of contests like racing, sparring, pageant... Which means the pet has lots of parameters that show what it's good at, as well as lots of other parameters like stress and affection and states like what species it is and if it is injured, sick, etc.

Anyway, I am wanting to create a game save system so that at the end of each "day" turn the game will automatically save your progress and you can quit the game and come back and resume play later. I figure I would have to do this with file i/o or something, but I'm not really sure how to implement it.

First, there are a TON of variables to keep track of. There's the player's entire inventory, all the parameters of the pet, what day it is, money, the player's skills, etc.

Second, I feel like if you create a file and write to it, the player could just open the file and edit it and give themselves lots of money or a very powerful pet.

I tried searching on this forum but "game save" and similar returns pretty much half the topics on the board in the results. Same for search engines just get a bunch of unrelated stuff.

I've never had to create a game save system before so I am kinda lost, especially since it seems like this one will need to keep track of a lot of information.

Pressing enter does not make new line.

16 December 2012 - 02:03 AM

Hi. I was told to report this here. I am trying to type in this text box to make this post, and press the enter key... but it does not respond. It does not make a new line. The same happens in the quick reply box. I have been using other text boxes and forums today and have had no problem. This is my first time accessing gamedev.net on this computer, however. I am using Internet Explorer version 10.0.9200.16384 on Windows 8 (standard edition). I previously was posting using Opera on Windows 7 and did not have this problem. I assume not many other people are having this problem either, haha.

Misc questions

16 December 2012 - 12:52 AM

Hey friends. I was thinking about some stuff as I was going to sleep last night and I was curious how to implement them into a project. So far I have only made some really basic games using C++ and Allegro (like, tic tac toe or whatever). I also want to note that when I press enter in this text box, it does not make a new line. I have no idea why. So this is going to be one giant paragraph, sorry. Anyway Q1: Is using a giant list of if/else if statements or a giant switch ever a bad idea? Like, is there another way to go about checking for many conditions? For example, I was imagining creating a pet game in which you play through days which are like turns. You can do things during the turn in any order, but at the beginning of the day, you will be updated on the pet's status if there is a trouble or curiosity. There may be many troubles like... sick, injured, run away, stressed out, tired, grown up, angry, acting strangely, the pet's birthday, etc etc etc. Is there a better way to check for these other than a giant else if list or something similar? Also, is it very draining on resources to use a giant case list like this, or is it really no big deal and I'm overthinking it? Ok, now for Q2: How would you implement something to tell if the user is "petting" on the pet, for example, you could have pets of many sizes and the "petting" is clicking and holding a click, then moving back and forth at least two times across the pet's head area. The pet could also be moving around so its location is very dynamic. I figured use some kind of collision detection with a cursor to tell if you are clicking in the head area but I don't know really how you would go about recognizing that you are moving left and right without letting up (and not accepting up and down movements, circle movements, etc.). This seems kind of advanced for me. Just a really basic description is fine, no codes or anything needed. It is a curiosity. And lastly, Q3: I am going to be downloading Unity soon as I just got a new computer and would like to try it out. I was wondering, how easy is it to create a project for one platform in mind (for example, windows exe) and then use the same project to make another platform version (like iOS)? Is it as simple as a Save As... or is there a lot more involved? I'm sure this answer is available easily somewhere but I don't really know what to call that so I don't know how to search for it. Again, sorry for giant paragraph... I really wish pressing enter would work (it works everywhere but in this text box...) EDIT: Wanted to add that I was also thinking perhaps for all of the "troubles" they could be set like flags, and then there could just be a "trouble" flag that would go up so if the trouble flag is down, it won't check for all the troubles. But IDK if checking lots of ifs is even a big deal. I don't know a lot about making efficient code yet. I just try to make code that works.

PARTNERS