GTAStunting
General => General Discussion => Computer Talk => Topic started by: JayFoxRox on December 29, 2006, 11:25:45 AM
-
No Programming skills are needed! I m starting from Zero!
Ok, this is serious, when you don't like the idea just go away.
I m planning to do this as a kind of tutorial. The main objective of the project is to have a LITTLE (don't expect Half-Life 3) game at the end made 99.99% by this community.
I m not sure how long the holidays still are. But at the end of them i would like to have a atleast a little demo. This means everyone should try to help.
I know we have modelers in this forum, we have great GFX/Music artists, we have some math talents and we even have a few coders.
Rules
- No negative comments about idea of others
- Ask when you don't understand something
[more to come]
How we are going to do it?
This is a good question , i try to explain things in posts and you can simply ask for things you dont understand. We start at zero, every1 should give some ideas on what game we could make, after that i will write some code (which is not perfect maybe, each code will be released as a part/lesson) and post it in this thread, in the end you should know how the programming language works with the code and maybe you can even improve my code.
Please Remember: We do simple stuff, when giving ideas i recommend to not make a Simulation for cars or something, Cars require alot of physics for example. Also RPG's are nearly impossible to make with DarkBasic, Alot of objects would need to be controlled by the PC so its hard to make. When you are unsure about how hard it is to make somethign just mention it and i will look at it.
Programming language
Ha, thought long about this. First i thought VB would be cool. But then i saw that it might be to complex for a beginner. So we use a Really High Level language (Which means its based on tons of other languages , we have premade commands, ...). In this case its DarkBasic Pro. DarkBasic is slow, you can't load any GTA models at FPS>300. but that doesn't matter to us. Our target is to understand programming, not having a Extremly well 3D Engine.
All Tools I m going to use are either Free or have 30 day Trials which shouldnt be a big problem!
------------------------------
Ok, i m goin to watch some tv now, when i m back we should have some ideas (or even some questions )
------------------------------
btw: When this project should be an success (i doubt it ) we will have one of the following options:
a. Port to Visual Basic using DirectX => Adding Multiplayer
b. Port to PSP using sceGU => Adding AdHoc Multiplayer
And maybe something else.
------------------------------
Collected Ideas (Round 1: Game type)
Fox:
Racing Game > Hovercrafts
Little Shooter Game > Sniper is on a tower (bot), player has to run towards the tower to place a bomb on it
Pakour Game > Probably hard to make. Only simple actions
Plane Game > Stunting, Flying under bridges etc, flying airshows with bots etc (MY FAVOURITE!)
Linkdk
Snake
ShadowSniper
Launcher > You have roofs to get to and things like walls etc. just floating about.
The objective of the game it to launch into these things, then the physics bounces you off them, collide off other things and land on the roof, there could be various things to bounce off till you land on it. Control when to launch, and the power with the mouse. You can fly a little to the left/right with A/D. Use your brain to work out what will happen and see the results. Possible?
Hide And Seek > Hide And Seek
Decision: Launcher by ShadowSniper
Collected Ideas (Round 2: What do we need (formulas, models, media, ..))
Orange Items Are Needed
Green Items Are Done/Finished ready for use!
White Items Are Optional
- Map Loader (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_3.gif)
- Collision System (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_4.gif)
- Animation Loader (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_5.gif)
- Menu Grahpics (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_2.gif)
- Sounds: Environment, Player Voice, Launcher sounds (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_2.gif)
- Models for: Houses, Launcher, Player, Cars on streets? (Fox)
- Good Skymap and Skybox (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_3.gif)
- Physics for Player (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_3.gif)
- Smoke Trails after Shots - Mario 64 like when comming out of a cannon (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_5.gif)
- Basic Map Editor (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_4.gif)
- Animation Editor (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_5.gif)
- Single Player Missions (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_5.gif)
- Minigames (Fox) (http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_3.gif)
(http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_5.gif) = Hard
(http://www.gtastunting.com/forums/style_images/new1167518000/folder_topic_view/rating_1.gif) = Easy
-
This sounds like a good idea, i would like to join in i havent got any previous experince but i wanna help out sounds like a cool idea
PS: i like the plane idea
-
Im good at maths . Im good for it if you like, what about a game of hide and seek? Simple but fun.
-
Oh i forgot to mention i do some GFX im not great but ill have a go at doing some stuff. hide n side sounds pretty fun aswel.
-
I' m good at stunting, english, spelling...
but seriously, this is a good idea. I don't understand the codes very well, though. But I'm good in GFX.
(For scripters, ask Fugitive)
(For Modelling and mapping, ask Nitzkit) Nitzkit probably isn't modelling, but I don't know...
I like that parkour idea.
-
okies i m back. as i said, no problem when you dont know anything about coding, i m going to explain.
The idea of hide and seek seems to be good and simple. but not for programming
I will try to make it understandable for you.
We have an player object, Green
We have another object to be spotted, Blue
and we have some walls, Red
PLUS
the field of view of our player, Yellow
What we could do is send out little dots all the time, but this would be hard to programm (not that hard but not easy either) and would take ALOT of cpu usage.
Greendead:
We can't just say - heya scripter, modeler, mapper, ...
Our game is made from ground up, we have no code for loading any scripts, there is no code for loading maps.
We will write our own map loader. Though scripts are depending on the game we are going to make. But for now this would be to complex. Hardcoding (all code in the exe - no script files) should be ok.
btw:
Scripting is having an external file getting loaded running besides the hardcoded stuff. So you can structurize your application/game.
-
Awww hide and seek would have been fun .
New idea
Launcher
You have roofs to get to and things like walls etc. just floating about.
The objective of the game it to launch into these things, then the physics bounces you off them, collide off other things and land on the roof, there could be various things to bounce off till you land on it. Control when to launch, and the power with the mouse. You can fly a little to the left/right with A/D. Use your brain to work out what will happen and see the results. Possible?
-
What about Snake ?
-
I like this idea, but will this be pulled off? I mean yes we'll all chip in a little, but as good as this sounds I am afraid it won't pick up. The Hide N Seek game would of been fun indeed, but a Le Parkour game sounds even more cooler. I can't really imagine the process of making though.
-
Linkdk: A bit more complex please Snake would take us about 10 minutes..
The idea of ShadowSniper seems really interesting.
That could work out pretty good when we get some mario style into it i think
But for now i still think a Plane Stunt game would be the coolest.
Thanks for all your interests btw
-
Better draft of game is here, not all ideas are easy to make, but lets see how it goes .
LAUNCHER
The name of my game is launcher, a flexible concept, with hundreds of possibilities thanks to the exciting map system for the game. The objective of the game, is to launch your human self into objects, control physics, taxing your mind to make your ideas work, to land on a target, maybe inside a bin, or on top of a plane? The possibilities are endless.
You can lean at objects you want to collide with, objects you want to pull with you to get a up/downthrust off an object, get through small tubes for speed boosts with precision. Loops, but also loops to catch you out to make you learn from your mistakes, for example you might have to lean off the top of a loop so you don’t go the whole way, and collide into something next to the loop, landing you on a roof. In this game there is no HUD to confuse the player. There is a red design on your back showing distance left, closer it is to top closer YOU are to the top. Or maybe bottom? Who knows…. One other cool idea is, to have similtaneuos building to launching. One player builds for another to reach the target randomly given.
-
Ok its time to decide what idea we use. Just look into the first post and choose ONE of them.
Just do a post like the following with your choice:
I Want to do "Plane Game" (Idea by Fox)
this is my decision.
When we have atleast 3 votes i will start and explain some basics of programming (Spinning Cube, Waving Cube, "Clock") and round 2
-
Ye snake is good to start with ?
-
as i said, its a bit to easy. though i can show you how to make snake after the other game we do. i added it to the first post cause its an idea. when 95% would vote for it i would do that one. but i think:
- snake in 3D is weird, would be better in 2D cause its dot based
- snake should be pretty easy to make, depends on what technique you use (will explain these later)
So, i wouldnt really recommend hide and seek + snake
-
I vote Launcher .
-
I vote Launcher
-
I vote Launcher.
-
Ok Launcher By ShadowSniper made the race.
When possible everyone draw some simple concept of what you think about when you read ShadowSnipers idea
I will upload mine tomorrow.
-
This is what i have drawn as a simple concept. I have used trampolions here as an example.
(http://img241.imageshack.us/img241/8428/conceptwc0.th.png) (http://img241.imageshack.us/my.php?image=conceptwc0.png)
-
woah - mine looks tottally different. nice work though glen.
Thats what i thought about:
[a href=\"http://img66.imageshack.us/img66/1964/conceptlq9.jpg\" target=\"_blank\"] - and you have some buildings in a big city. on some houses you have these little landing zones you have to land on, just next to them you will find a launcher (eh tried to draw cannon in the pic - but a ramp would be cooler), when the player spawns you are on the street, starting at a park for example, launching onto the first roof (You can see which one by looking at the compass and/or the arrow waving about the zone (thats what i try to show you today: "Waving cube" (or arrow)). When you are in a sphere above the landing zone the camera will change and show one of a few possible landing scenes (easier for now), after you will see the player going into the next launcher, you can aim (from 1st person!) and then shoot to the next roof. Sometimes you have to jump on some funny objects (we need ideas for these - but later. to hard for now) where you get bounced again.
Gameplay could be Mario 64 Like, with Spiderman like City Graphics (i like that style), player should be a little guy, no real sizes i think.
Addition: ShadowSniper just told me about more objects you could collide with. So yes, Some Cepelines (?) or CASINO signs on roofs would be cool, it shouldnt be hard to add some Zones and when the player goes through you get some extra money/points/whatever (Jump through the CASINO - O Letter for example)
-
Personally i like yours better fox mine was just quick and i could draw in 3d so i just did it inm 2d quickly.
-
I just updated the first post with some things we need, maybe something is missing so keep your eyes opened
Lesson 1: Basics Of Programming
Ok before I start I recommend you to get the tools I will use while making this game.
- DarkBasic Pro (30 Day Trial) (http://darkbasicpro.thegamecreators.com/?f=trial)
- Zanoza Modeler 1.07 (Freeware) (http://www.zmodeler2.com/?mode=dl&ID=3)
- Photofiltre (Freeware) (http://www.photofiltre.com/)
When you have problems getting darkbasic to run or your trial runs out just call me on msn or pm me.
I m sure most of you know allready how a code looks like and how it works. Though i m going to explain it again.
This is a sample code:
CommandA Parameter1,Parameter2
ReturnValue = CommandB(Parameter1)
CommandC Parameter1
Ok, its easy.
Our compiler (The applicatoin generating the exe files for us) will just read the code like a book, starting from top going to the bottom.
So first CommandA gets executed with the Parameters 1 & 2
After we will use the Value of Parameter 1 in a "function" to get a Return Value
and after that another Command is executed without return values (or we dont need them so we dont store them in a variable)
Sample of Commands:
Blah = ResultAddition 1,8
Blah = SquareRoot(Blah)
Print str$(Blah)
Ok, First the Result of 1 + 8 is saved into the integer variable Blah (Integer is default in DarkBasic),
Then the square root of the value from Blah (8 + 1 = 9 >> Square Root of 9 = 3) is saved.
After that our programm will show us a 3 on the screen.
Now you might ask: Whats the str$ standing for? Well, easy. Our variable is from the type Integer - its a number. But we want to output text
so its must be converted to a text string before (using str$())
These commands doesn't exist in DarkBasic btw.
But here is another sample of the same code with working commands:
Blah = 1 + 8
Blah = sqrt(Blah)
Print str$(Blah)
sqrt is the shortform for SquareRoot. This is probably hard to remember but we wont need it often anyways.
Ofcourse you can mix commands into eachother too. Here is an little example:
rem Blah = ResultAddition 1,8
Blah = SquareRoot( ResultAddition(1,8) )
Print str$(Blah)
Ok, this is probably a bit harder. The first line has an "rem" infront of it, "rem" stands for Remark. So this line will be ignored by the compiler
you can put comments there for example. The second line is a bit tricky.
First your application will get the returnvalue from the function/command ResultAddition 1,8 . The parameters are in brackets so the compiler knows that these
parameters are members of the function ResultAddition.
So our "ResultAddition(1,8)" returns 9. This will be instantly used in SquareRoot. The result of our Square Root is 3 once more and will be saved in the variable Blah.
Then the pc outputs the content of the variable Blah > 3
So basicly our programm will do the following
Blah = SquareRoot( ResultAddition(1,8) )
will become
Blah = SquareRoot( 9 )
which becomes
Blah = 3
and after that the result is given out. First we have had 3 Lines of code. But know you know: we could have done in 1 Line!
Here it comes:
print str$(SquareRoot( ResultAddition(1,8) ))
Ok, these are the basics. Now about String manipulation and conditions
First we will have a variable, i will call it OurText for now:
The $ at the end will mean string value!
OurText$ = "GTAStunting.com Sucks"
the quotion marks will identify a string value.
ok now we let our programm check the code:
if OurText$ = "GTAStunting.com Sucks" then OurText$ = OurText$ + " not!"
print OurText$
Pretty easy eh? First it checks if OurText stores the text: "GTAStunting.com Sucks" (CASE SENSITIVE!) and if so it adds a simple " not!" at the end
Our new text will be "GTAStunting.com Sucks not!".
But now imagine: You detected a collision between your player object and a wall for example. Now you want to rotate your player AND reposition your player.
But the "if [condition] then" only takes one command in the end. The solution is simple:
if [condition]
remstart
Tons of comments here
remend
[Tons of commands here]
else
rem This happens when the condition is not true!
[Tons of commands here]
endif
So first it will check the condition and if it is true then it will execute the code until "endif". Please remember that there is no "then" !
("remstart" starts a remark block and "remend" ends it)
One last thing about conditions:
There are other operators than =
a < b means a is smaller than b
a > b means a is greater than b
a <= b means a is smaller or equals b
a => b means a is greater or equals b
a <> b means a does not equal b
I think now you know about 75% of all stuff needed for a game. Only thing missing are datatypes, arrays.
What you know right now about datatypes is basicly nothing.
You should know there is the integer type and the string type.
Here are all we need:
integer
float
string
there are others which we wont use due heavy bugs in DarkBasic when doing comparsions with the variables of that type.
integer could be a value like this: 4646 or 1337
float could be a value like this: 4646.46 or 1337.0
and
string could be a value like this: "4646.46" or "1337.0" or "Hello World!"
the problem is: you cant compare them against each other
1337.0 <> "1337.0"
Though, i saw newer darkbasic compilers which fix this. Mine doesnt at all!
so we have a little problem here:
rem PlayerPosition on Height Axis (Y)
PlayerPositionY as float
PlayerPositionY = 0.45
rem Check if player is above water level which is at 0.0
if PlayerPositionY > 0 then print "Heya! Player is above water level"
this should give us NO text output (Integer Versus Float)
IT will try to convert our float to an integer which is 0 => And 0 > 0 is false!
So when programming always look out for this kind of comparsions.
There is no real solution for this. What i do is either multiplying the float value by 10000* or something to get an integer (results in overflow/underflow sometimes) or i define an zero variable as float on top
btw: Instead of declaring it as float you can just add an # at the end of the variable (but it wont work either )
tricky eh?
Ok now for arrays
When having a game you have no ways arround arrays i think. Here is an example:
ObjectA = 1
ObjectB = 2
ObjectC = 4
ObjectD = 8
print ObjectA
print ObjectB
print ObjectC
print ObjectD
now almost the same code using arrays:
dim Object(3)
Object(0) = 1
Object(1) = 2
Object(2) = 4
Object(3) = 8
for i = 0 to array count(Object(0))
print Object(i)
next i
Explaination: first we will fill Slot 0,1,2 and 3 of the arry Object (Which as 4 Slots: 0 to 3. In array count use Object Slot 0 always) with values.
After that we setup an for to loop.
a for to loop is simple. first you set a start value (0 in this case) and a variable which should be changed and finally the value you want to reach.
at the end of the loop you place an next [variablename]
so this code will execute:
rem [Setting variables]
rem First Run (i = 0)
print Object(0)
rem Second Run (i = 1)
print Object(1)
rem Third Run (i = 2)
print Object(2)
rem Last Run with 4 (i = 3)
print Object(3)
Thats it!
The last thing you have to know about are the custom datatypes.
Sample:
rem Create Position Variables for 6 soldiers - X,Y,Z for each
dim SoldierPositionX(5) as float
dim SoldierPositionY(5) as float
dim SoldierPositionZ(5) as float
rem Setup first Soldier (Slot 0)
SoldierPositionX(0) = 0.0
SoldierPositionY(0) = 5.0
SoldierPositionZ(0) = 10.0
rem [...]
Ok now imagine you have other things like Health, Rotation (XYZ), Spin (XYZ), Velocity (XYZ), Position (XYZ), Animation ID, ...
for this we have some handy thing called Usertypes:
type matrix
x as float
y as float
z as float
endtype
type PlayerClass
position as matrix
rotation as matrix
health as float
endtype
dim Soldier(5) as PlayerClass
Soldier(0).health=100.0
Soldier(0).position.x = 0.0
Soldier(0).position.y = 5.0
Soldier(0).position.z = 10.0
Soldier(0).rotation.x = 0.0
Soldier(0).rotation.y = 0.0
Soldier(0).rotation.z = 0.0
Thats it! simply define your own datatype with given variables in it.
Owner.Member = Value
Thats all for now. When you have any question just call me on msn or pm me
(Or even bettere ask in the thread)
PS: One last thing! I can say for sure that none of these sample is working. The reason for this is simple: There are no more commands so the execution of our programm stops. To avoid this just add a "Sleep 5000" at the very end of your code to make your programm stop for 5 seconds (5000 milliseconds).
For Compiling your code use either F5 or "Compile > Make EXE/RUN" from the menu
[SPACE FOR LESSON 2: Sin and Cos]
-
I agree with your addition Fox . Well I didnt want to confuse anyone, so here is a simple, not very detailed concept first level.
(http://img478.imageshack.us/img478/3144/launchersimpleconceptqy1.th.jpg) (http://img478.imageshack.us/my.php?image=launchersimpleconceptqy1.jpg)
The numbers are the order you should go in, what could happen etc, hopefully you can fully understand basiclally with this drawing.
-
ok i made a little menu screen. i hope ya like it
[a href=\"http://img220.imageshack.us/img220/2826/menugt2.png\" target=\"_blank\"] - is for our player. We will make some special animations which are played in there.
btw: Please give feedback on lesson 1 please so i can improve it.
-
Nice one Fox
-
I AM SOOO IN!
i don't have time to read everything right now but i am an experienced mapper and i can understand the programing i just don't know much of it. but i am a mapper!!!!
-
ill do the menu graphics
-
nice mate, good luck with it, id join in, but im busy with impure
-
Sorry for delaying this that much. You can expect that i m going to make another tutorial/lesson on irc or msn soon. This will be pasted over here after. We should be atleast 5 ppl (including me). Otherwise it would be useless to spend hours on irc/msn
-
All sounding very well Fox .
-
ok probably i m making a full text lesson again. this time i will talk about 3D modeling and if i m finding a good way for anims (only did this once before) i will explain this too. then in the lesson after i m finally explaining sin/cos/tan by making a simple animation editor.
Ok now for some bad (?) news: i decided to change the game concept. Its still having the launcher in it (We are modeling this together - launcher + lil waggon for our "player"). The player will be replaced by a crash dummy like this one:
]:
I hope you like the idea. I decided this to make this as easy as possible for you so dont shout at me for changing the concept
btw: This is now supposed to be looking more serious but still a bit unrealistic
-
*Shouts for changing concept* . Well im a bit skeptical about this new one but lets see how it pans out .
-
It's looking mighty awesome Fox, the Launcher concept is taking new heights.
-
Okies i made a few screenshots while i made this:
(http://img135.imageshack.us/img135/7939/launcherlc2.jpg)
Its only one box - textured with faces (more than you might think).
It will be the rail of the launcher where the dummy's "sledge" is leaded by. Its still missing the connections between ground and the rail, the sledge etc etc etc.
I m writing a lil tut now which should be finished tomorrow or on monday.
//Edit: I still dont like the green color. i will try to get a better color soon like this:
(http://www.ekolbrno.cz/images/prod_4_7_big.jpg)
-
Coolio .
-
That box you made could be a launcher. The chain pulls at a high speed and throws the CTD (Crash Test Dummy) at high speed into whatever the player can aim at. The launcher should also be rotatable (As shown below) and the CTD will be more erm..... human like and in 3d . Right ? Heres my idea :
(http://img452.imageshack.us/img452/3549/launchervn0.png) (http://imageshack.us)
-
Due time problems i will try to come up with a new lesson in about 3 weeks or something - just give me time. therefore i will include much more information and its going to be a video.
StuntX: Yes, its supposed to be the launcher as i said. rotatable - not sure yet. but it would be easy to do. i cant make sure we can make him bounce that often - for now just smashing him should be enough.