RE: How do you make a game? (Full Version)

All Forums >> [Gaming Community] >> [Legends and Lore] >> Artists of Legend >> Art Academy



Message


saraid -> RE: How do you make a game? (6/24/2007 23:06:35)

VB CAN be used as a relatively decent games programming app. - surprisingly fun to use, not spectacular results, but definitely a lot easier to program than a C++ game or similar. In VB I've made simple Pong-style games, a side-scrolling shooter, a full one/two player blackjack game and a connect-four style game with relative ease, I'd say its definitely a viable option for the hobbyist.

'How do you make a game'

What a broad question! - something even a professional in the field would have trouble answering IMO. There's no right or wrong way of doing things, from RPGMXP and GameMaker and that ilk to pure machine code [:D] - it all depends on how much you're willling to put into it.

Basically, there's programs that do almost all the work for you, RPGMXP and the like, takes next to no programming or design skills to make a functional game in it. There's Flash, which does a great job of incorporating design and programming IMO - more suited to design, and the scripting is rather inefficient, but I still thoroughly enjoy making games in flash. Then there's languages like VB, C and its various spin-offs, Java - seem to be the most popular - code-heavy but extremely customisable - I've never delved into incorporating graphical elements into C++ or anything though, I honestly wouldn't know where to start. Then there's game engines like Unity that combine a 3D editor and a simple scripting language (uses JavaScript [8|]) - Unity is jut an example, only available for Mac, but I LOVE the program, means I can incorporate my 3D level and character designs from blender and easily work them into working 3D games, fully customisable and UNIQUE. Basically, the more control you want, the harder it gets, if you want a game that's YOURS, unique and DISTINGUISHABLE - then you need to WORK and you need a hell of a lot of dedication. If you want to knock up an anonymous piece of tripe that looks exactly like someone else's anonymous piece of tripe, RMXP is the perfect vehicle.

I'd much rather see a programmed game, no matter how 'bad' it might be, than some toolkit generated POS anyday. Kudos to you guys using C++ to make games, no matter how basic, you'll always have my respect above the Toolkit Crew - haven't been here in well over a year, haven't programmed outside of PHP or VB data handling outside 6 months now, so getting back into games programmings something I keep putting off 'cause I know my whole summer is going to get wasted on it if I start, too addictive [:D]. Meh, I'm a GUITARIST - guitarist shouldn't have to program [8|] - Nah, coding will always be a hobby of mine.

Again, haven't been here in a LONG while, really good to see some of you guys are using proper means of making games, keep it up! [:D]




EragonZZZZ -> RE: How do you make a game? (6/24/2007 23:38:22)

just keeping you posted, AS in flash has evolved to become much more powerful, actually (in my opinion) surpassing VB in some areas and approaching its place as an actual language. It is now entirely OOP and the inefficiency often comes from poor programming skills, rather than a flaw in the language.




saraid -> RE: How do you make a game? (6/24/2007 23:47:08)

Haha, yeah, I suppose I didn't really think about the statement.

As a language ActionScript is pretty cool, it was more the implementation of it that I found to be a bit lacking, if you know what you're doing its an extremely good language, just most ActionScript is bloated, usually because a lot of people (myself included) don't properly know what the're doing [:D] - again, not blaming the language, it ALLOWS inefficient code, but so do all the languages, just I've seen an abundance of it in AS - hell, better than it point-blank not working eh [:D]. My poor programming skills are often the source of an app's 'inefficiency' [8|] - I just like to make myself feel better by saying 'What the hell, you're LETTING me do that??'

3 smilies per post.




EragonZZZZ -> RE: How do you make a game? (6/25/2007 0:38:36)

Don't we all :D
I love when I freak out about some syntax thing in AS only to find that I added an extra 'o' in '_root'

The only thing lacking in that language is modification of files on a system, but because of the nature of the flash player that's a big no-no.
SOL files work fine in most cases anyway, and Server Side Scripting is a bonus :D

And hey, i wasn't putting down YOUR programming skills.
I think AS and Flash get a bad rap because most people know AS as the language of those horrible pop-up and banner ad games XP
People think AS is just a bunch of "gotoAndPlay this on this click" and it actually contains some power. :D




saraid -> RE: How do you make a game? (6/25/2007 0:44:44)

Haha, if I you SAW my programming skills you'd definitely make fun of them [:D]

I wasn't suggesting you were at all, was just poking fun at myself, I'm pretty much a gotoAndPlay kinda guy when it comes to Flash, I CERTAINLY don't use it to anywhere NEAR its full potential, but I have a lot of fun 'underusing' it XP

Server Side Scripting is a HUGE bonus, if its oen thing I'm moderately profficient at coding its PHP and SQL, never put it to anything beyond slight whimsical use in Flash, but most of my freelance work involves a hell of a lot of PHP and SQL, so I'm pretty well-practised in that, for my age at least




EragonZZZZ -> RE: How do you make a game? (6/25/2007 0:56:06)

Oh, well, I'll be needing you in a few months then.
Scripting == epic win for me
SSS == epic fail

Details about the project will come at that time.
Other than that, just know you're on call for more freelance.
you might not get paid though D:




flsg -> RE: How do you make a game? (6/25/2007 9:35:51)

welcome back saraid lol
Irish_Ninja: first, choose a game making program before asking how to code a game, because RPGMXP and AS are really different, and AS(actionscript) use a different style and concept, sometime it's fun to see how to program a thing that's super complicated only by using a few lines of codes, so I suggest flash




Krieg -> RE: How do you make a game? (6/25/2007 12:50:01)

Yeah, if you know how to model in 3D, you can just put it into some game engine such as Reality Factory (never tried it, just found it), play with it, and find out how to make a game without knowing how to program. However, knowing how to program allows for much more customizing (ex. Microsoft XNA Game Studio).

Personally, if I'm ever going to make a game, I'm going figure out how to use Blender's integrated game maker (Game Blender) that uses Python and maybe even put it into the Ogre3D's graphics engine. This would give me the capability of making a game completely open source and free.




Irish_Ninja -> RE: How do you make a game? (6/25/2007 14:04:57)

I don't want to use flash or C++, I really do want to use BYOND, plus saph is learning more on it and said he'd teach me, so I might not need all of this

But, anyway, I don't know how to actionscript, I might want to try it though... Nah, like I said, I'll stick with BYOND. I think that a group of people should start a BYOND group game in the GoCa and learn from that example, start tutorials, etc. I think that would help a lot of people!




flsg -> RE: How do you make a game? (6/25/2007 16:58:33)

Irish_Ninja: that's the problem, not many people know BYOND and it's hard to learn something when you're all by yourself




Krieg -> RE: How do you make a game? (6/25/2007 17:01:28)

Well, sorry we couldn't help.

BYOND seems like a good program with its online multiplayer capability and all, but I'm not willing to learn this type of software at the moment.

If you eventually make something, be sure to show us. ;)




Irish_Ninja -> RE: How do you make a game? (6/25/2007 20:23:50)

Yeah, I agree... But I'm going to risk trying. I'm just going to ask everybody there on how. I've actually figured out a lot, just not specific things that I need to know:

how to make skills and execute them, how to link skills to other people, etc.

mob
var
saved_x
saved_y
saved_z

Write(savefile/F)
saved_x = x
saved_y = y
saved_z = z
..() //store variables
Read(savefile/F)
..() //restore variables
Move(locate(saved_x,saved_y,saved_z))


mob/Write(savefile/F)
//store coordinates
F << x
F << y
F << z
//store variables
..()
mob/Read(savefile/F)
var {saved_x; saved_y; saved_z}
//load coordinates
F >> saved_x
F >> saved_y
F >> saved_z
//restore variables
..()
//restore coordinates
Move(locate(saved_x,saved_y,saved_z))
mob/Write(savefile/F)
F["name"] << name
F["gender"] << gender
F["icon"] << icon
mob/Read(savefile/F)
F["name"] >> name
F["gender"] >> gender
F["icon"] >> icon
mob/Write(savefile/F)
F["name"] << "Dan"
F["gender"] << "male"
client/New()
var/savefile/F = new(ckey)
F >> usr
return ..()
client/Del()
var/savefile/F = new(ckey)
F << usr
del(usr)
mob
Login()
var/savefile/F = client.Import()
if(F) Read(F) //restore properties
..()
proc/SavePlayer()
var/savefile/F = new()
Write(F) //save properties
client.Export(F)
mob/proc/GotoMars()
var/savefile/F = new()
F << src
if(!world.Export("dm.edu:2001#player",F))
usr << "Mars is not correctly aligned at the moment."
return
usr << link("dm.edu:2001")

world/Topic(T)
if(T == "player")
//download and open savefile
var/savefile/F = new(Import())

//load mob
var/mob/M
F >> M

return 1
mob/verb/export(Addr as text)
usr << "Export([Addr]) == \..."
usr << world.Export(Addr)

world/Topic(T,Addr)
world.log << "Topic([T]) from address [Addr]."
return 1
mob/Write(savefile/F)
var/V
for(V in vars)
if(issaved(vars[V]))
if(initial(vars[V]) == vars[V])
F.dir.Remove(V) //just in case
else F[V] << vars[V] //write variable
mob/Read(savefile/F)
var/V
for(V in vars)
if(issaved(vars[V]))
if(V in F.dir)
F[V] >> vars[V] //read variable
proc/Weather()
for()
world << "The sun rises in the east."
sleep(500)
world << "The noon day sun rises high in the sky."
sleep(500)
world << "The sun sinks low in the west."
sleep(1000)
area/sickroom
//how long to wait before clean cycle
var/const/alarm = 100

//moment when countdown started
var/start_time = 0

Enter(var/mob/entrant)
if(!start_time)
start_time = world.time
spawn(alarm)
for(entrant in src)
entrant << "The disinfectant hits you. Aaahhhh!"
del entrant
start_time = 0 //ready for another round

var/time_left = (alarm - (world.time - start_time))/10
entrant << "In [time_left] second\s this room will be disinfected."
entrant << "Have a nice day!"
return 1
area/room
Exit()
. = ..()
if(. && usr) spawn src << "[usr] leaves."
mob/verb/smile(M as mob|null)
if(!M) //no target mob specified
usr << "You smile."
oview() << "[usr] smiles."
else
usr << "You smile at [M]."
M << "[usr] smiles at you."
oview() - M << "[usr] smiles at [M]."
mob/Login()
if(!loc) //new player
loc = locate(world.maxx/2,world.maxy/2,1)
mob/Login()
if(!loc)
loc = locate("start")

proc/LocateInLevel(Type,zLevel)
var/SW = locate(1,1,zLevel)
var/NE = locate(world.maxx,world.maxy,zLevel)
return locate(Type) in block(SW,NE)
turf/downstairs
verb/use()
var/dest = LocateInLevel(/turf/upstairs,z+1)
usr.Move(dest)
turf/upstairs
verb/use()
var/dest = LocateInLevel(/turf/downstairs,z-1)
usr.Move(dest)
mob
var/mob/enemy
proc/Swing()
if(get_dist(src,enemy) > 1) return
//do the damage...
mob/guard/New()
..()
spawn for() //spawn an infinite loop
if(!step(src,dir)) dir = turn(dir,180)
sleep(30) //three seconds
mob/verb/follow(mob/M)
walk_to(src,M,get_dist(src,M),30)
mob/verb/flee(mob/M)
walk_away(src,M,5,30)

mob
var/wander
New()
if(wander) walk_rand(src)
..()
mob/var
wealth as num
strength in 1 to 100 //defaults to "as num"
alignment in list("good","bad","neutral")
background as text
mob/rat
verb/tell(msg as text)
set src in oview()
if(findtext(msg,"cheese"))
view() << "[src] looks at [usr] hopefully."
walk_to(src,usr)
proc/SortTextList(lst[])
var/i
var/j
for(i=1,i<=lst.len,i++)
for(j=i+1,j<=lst.len,j++)
if(sorttext(lst,lst[j]) == -1) //swap positions
var/tmp = lst
lst = lst[j]
lst[j] = tmp

mob/verb/who()
var/lst[0]
var/mob/M
var/N
for(M)
if(M.client) lst += M.name
SortTextList(lst)
for(N in lst) usr << N
mob/Login()
. = ..()
usr << {"

<CENTER><BIG> The Great BYOND </BIG></CENTER>

Welcome, [usr]. I am glad you could join us.

<SPAN CLASS=system>
Please refrain from scribbling on the walls.
</SPAN>
"}
obj/weapon
var/power
clipboard
power = "1d4"
calculator
power = "2d6"

verb/swing(mob/trg in view(1))
var/damage = roll(power)
view() << "[usr] hits [trg] with \a [src] for [damage] point\s!"
obj/fortune_cookie
verb/eat()
usr << "The message inside says:"
usr << pick (
"Never trust an undead doctor.",
"Only trust undead lawyers.",
prob(25)
"The throne marks the way.",
prob(10)
"The wall behind the throne is an illusion!"
)
del(src)
mob/verb/list_files()
shell("dir > dir.txt")
usr << browse("dir.txt")

And there's something I've come up with, it works so far, but I need a map still, mine won't show up...




Krieg -> RE: How do you make a game? (6/25/2007 20:32:41)

I don't know what you mean in the second part of your question, but I'll see what I can do about gaining skills in C++.




EragonZZZZ -> RE: How do you make a game? (6/25/2007 20:38:28)


quote:

ORIGINAL: flsg

Irish_Ninja: that's the problem, not many people know BYOND and it's hard to learn something when you're all by yourself


I digress, its how I taught myself all the languages I know.
>_>

But flsg is right, it IS rather difficult and time-consuming.




Krieg -> RE: How do you make a game? (6/25/2007 20:48:52)

LOL If I weren't such a procrastinator (who else waits until 11pm to start their 3+ hours of homework?), I'd be able to do a lot of things.

Anyway, I haven't done anything, but I think I've figured it out (even if it is a bit inefficient). I can't explain it very well so I'll just edit my previous sample program to see if it works. It might be hard to put it into BYOND, though, as it seems that it can't handle functions by looking at your code.

I'll post it once I'm done.




Irish_Ninja -> RE: How do you make a game? (6/25/2007 21:13:44)

I think you press F1 or something and there is like 7 ways you can code with DM. There is also a way to code like with C, I think you do something like { sasasas
sasasas
}
or something like that...




Krieg -> RE: How do you make a game? (6/25/2007 21:56:49)

...

Anyway, I've more or less finished. I've highlighted every new piece of code that I've put in or changed since the last version and took out the functions that were not changed (you'd have to copy and paste them from the other post if you want to try it out):
quote:

//function prototypes
int useSkill(String ^);
void playerSkill();


//Default Player Stats (Global Variable Declarations)
int skill = 1;
int tSkill = 0;
int tsDam = 0;


void status()
{
Console::WriteLine();
Console::WriteLine("Level: {0}", Convert::ToString(pLevel));
Console::WriteLine("Health: {0}/{1}", Convert::ToString(pHealth - pDamage), Convert::ToString(pHealth));
Console::WriteLine("Offense: {0}", Convert::ToString(pOffense));
Console::WriteLine("Defense: {0}", Convert::ToString(pDefense));
Console::WriteLine("Speed: {0}", Convert::ToString(pSpeed));
Console::WriteLine("Experience: {0}", Convert::ToString(pExperience));
Console::WriteLine("Skill: {0}", Convert::ToString(skill));
}
void battle(double monster)
{
String ^action = "";
String ^pSkill = "";
int dam = 0;

//monster local variables
String ^mName = "";
int mLevel = 0;
int mSpeed = 0;
int mHealth = 0;
int mDefense = 0;
int mOffense = 0;
int mExperience = 0;
//obtain monster stats
if (monster == 1.0) cat(mName, mLevel, mSpeed, mHealth, mDefense, mOffense, mExperience);
if (monster == 2.0) dog(mName, mLevel, mSpeed, mHealth, mDefense, mOffense, mExperience);
if (monster == 3.0) bear(mName, mLevel, mSpeed, mHealth, mDefense, mOffense, mExperience);
//battle
Console::WriteLine();
Console::WriteLine("You have been attacked by a {0}!", mName);
while(mHealth > 0)
{
if ((pHealth - pDamage) >= 0)
{
Console::Write("What would you like to do (a/r)? ");
action = Console::ReadLine();
Console::WriteLine();
if (action->CompareTo("a") == 0)
{
tsDam = 0; //clearing tsDam variable
if (pSpeed >= mSpeed)
{
Console::Write("Skill: ");
pSkill = Console::ReadLine();
tSkill = useSkill(pSkill);
if (tSkill == 0)
{
dam = pOffense - mDefense;
mHealth = mHealth - dam; //monster health calculation
}
else
{
playerSkill();
dam = tsDam;
mHealth = mHealth - dam;
}
Console::WriteLine("You do {0} damage to {1}. It has {2} health left.", Convert::ToString(dam), mName, Convert::ToString(mHealth));
Console::WriteLine();

if (mHealth <= 0)
{
Console::WriteLine("Congratulations! You have defeated a {0}! You have gained {1} experience points.", mName, Convert::ToString(mExperience));
pExperience = pExperience + mExperience; //update player experience
levelUp();
}
else
{
pDamage = pDamage + mOffense - pDefense; //player health calculation
Console::WriteLine("It does {0} damage to you. You have {1} health left.", Convert::ToString(mOffense - pDefense), Convert::ToString(pHealth - pDamage));
}
}
else
{
pDamage = pDamage + mOffense - pDefense; //player health calculation
Console::WriteLine("It does {0} damage to you. You have {1} health left.", Convert::ToString(mOffense - pDefense), Convert::ToString(pHealth - pDamage));
Console::Write("Skill: ");
pSkill = Console::ReadLine();
tSkill = useSkill(pSkill);
if (tSkill == 0)
{
dam = pOffense - mDefense;
mHealth = mHealth - dam; //monster health calculation
}
else
{
playerSkill();
dam = tsDam;
mHealth = mHealth - dam;
}
Console::WriteLine("You do {0} damage to {1}. It has {2} health left.", Convert::ToString(dam), mName, Convert::ToString(mHealth));
Console::WriteLine();

if (mHealth <= 0)
{
Console::WriteLine("Congratulations! You have defeated a {0}! You have gained {1} experience points.", mName, Convert::ToString(mExperience));
pExperience = pExperience + mExperience; //update player experience
levelUp();
}
}
}
else
{
Console::WriteLine("You have successfully run away.");
mHealth = 0;
}
}
else
{
Console::WriteLine("You couldn't take the pain! You've blacked out...");
mHealth = 0;
pDamage = pDamage / 2;
Console::WriteLine();
Console::WriteLine("You wake up. The {0} seems to have left. You feel slightly better.", mName);
}
}
}
void levelUp()
{
if (pExperience >= rExperience)
{
Console::WriteLine();
Console::WriteLine("Congratulations! You have just leveled up!");
rExperience = rExperience * 2;
pLevel = pLevel + 1;
pHealth = pHealth * 2;
pDamage = 0;
pOffense = pOffense * 2;
pDefense = pDefense * 2;
skill = skill + 1;
status();
}
}
int useSkill(String ^pSkill) //determines the skill used
{
if (pSkill->CompareTo("heal") == 0) tSkill = 1;
else
{
if (pSkill->CompareTo("fire") == 0) tSkill = 2;
else tSkill = 0;
}
return tSkill;
}
void playerSkill() //determines what each skill does
{
if (tSkill <= skill)
{
if (tSkill == 1) pDamage = 0;//heal
if (tSkill == 2) tsDam = 10;//fire
}
else Console::WriteLine("You cannot do that skill at this time.");
}

I've only included two skills: heal and "fire", the former healing the player to full health and the latter dealing ten damage to the enemy. I haven't figured out how to do skills like poison (ex. 3 extra damage for four turns) or temporary upgrades (ex. +5 attack for three turns) yet. Hopefully you'll understand some of what I did. It's not efficient, but it works.




Jadog7 -> RE: How do you make a game? (7/2/2007 10:47:55)

i need help making a rpg game but i dont know how can any one here help me?




GebbethLord -> RE: How do you make a game? (7/2/2007 11:46:26)

1) If you want to make a text based game, click here.
2) If you want to make a turn based rpg, click here.
3) If you want to make a turn based rpg, with better graphics, and you have a Playstation 2, click here.
4) If you want to make a first person shooter, click here.
5) The first person shooter's upgrade is here, but you need Windows Vista and GeForce 8800.
6) If you want to build your game using a forum, click here. I'm pretty sure this is the one I use, but not entirely sure.




flsg -> RE: How do you make a game? (7/2/2007 12:37:04)


quote:

ORIGINAL: EragonZZZZ

I digress, its how I taught myself all the languages I know.
>_>

But flsg is right, it IS rather difficult and time-consuming.

yeah but some things you can't learn it by yourself
for example, many ways of programming. Sometime you can't invent a new way to code something all by yourself. You need other's ideas




EragonZZZZ -> RE: How do you make a game? (7/2/2007 16:57:30)

I agree. Re-inventing OOP would be pointless and impossible. :D




Page: <<   < prev  1 [2]

Valid CSS!




Forum Software © ASPPlayground.NET Advanced Edition
0.125