village update 3( large pics)

Community Forums/Showcase/village update 3( large pics)

Ruz(Posted 2003) [#1]
Just thought I would show my progress on my vllage level. Done a lot of re doing stuff, new textures, trying new things.
Even got the lightmapping in there.the character is lightmapped too, but the version I have shown here is not the best one I did. needs work still. anyway.. back to it







jfk EO-11110(Posted 2003) [#2]
That's beautiful! That masked Texture looks pretty soft, what resolution did you use for that? The Leafs of the Trees look alpha-mapped - didn't you have z-order troubles? I decided to use mask mapped for the leaf, using a 512^2 Texture. I am looking forward to see a release of this project.


Foppy(Posted 2003) [#3]
"f2: fart"? Looking forward to playing this! ;)


Ruz(Posted 2003) [#4]
hmm, its not really a game right now, although if anyone wants to contribute something in terms of gameplay that would be cool.
At present its purely a graphics demo to send to employers

yeh , I had problems with the alphas in that when you look at another aplha through an existing aplha, there are z order problems. I had to take out my phone boxes cause of this.
All the textures are 128x128 per square apart from pearman who is 512x512.
lightmap is 1024x1024


Caff(Posted 2003) [#5]
Looking great Ruz, nice work :)


Bolo_Loco(Posted 2003) [#6]
Yeah, some really nice screenshots - good work !

Perhapst you should add some dirt and scratches to
youre textures .
Right now they look too "clean" .
Is the level a single mesh ?
Try to load the trees and all alpha stuff seperately.

What about a little demo ?

Bolo Loco


Ruz(Posted 2003) [#7]
Bobo_Loco,the village is one big mesh, the trees/accessories are all instances.The carts have their own lightmaps(128x128)
hmm, the textures are meant to look clean, almost cartoony, i don't like too much photorealism. I like sickenly cute things,he he
and cheers caff,jfk pleased you like it. i got some more reference today, with my digi cam, so i can improve it more

Foppy, the f2 fart thing was just me doing voice tests. i had soemone do lots of voices for pearman. I have a nice music track to go with it too


skn3(Posted 2003) [#8]
I think the textures looks great. Are you going to add some shadow for the pear headed dude ?

At the moment, it kinda looks as if hes gliding/floating.


Ruz(Posted 2003) [#9]
cheers,skn3[ac]
yeah, I don't know how to do player shadows. looks a bit complicated. Two things i am struggling with are the camera and the player shadow.
i think now i have done a nice walk cycle I will concentrate on sorting out the rest of the animations, like run,turn etc.
has anyone got any suggestions in terms of gameplay.
I like the the collecting stuff games, like rings or gold coins etc, would that be really hard to do?


Bot Builder(Posted 2003) [#10]
sswift has a nice fast shadow system for purchase.

Collection of stuff wouldn't be to hard, unless you want a sophesticated inventory like Diablo. For mario style coin number- star number stuff, it's pretty easy. define a type with two fields "mesh" and "typ$". Then you might want to create a file format that is simply somthing like "obj",X,Y,Z,XS,YS,ZS to store object positions. Finally, in game update the objects with a For a=Each type...Next loop that updates object movements(depends on typ$), like rotation etc, then check if entitydistance to player is less than some value. In the case that the object is close, delete the mesh and type, and increment your counter.


jfk EO-11110(Posted 2003) [#11]
Collecting stuff is easy. You could also combine it with some Keys and Locks aso. This village is looking very much like a mysterious Adventure Type Game to me. As for the Telephon Cabs you could use Texture Flag 4 instead of 2.


Ruz(Posted 2003) [#12]
Yeah I was learning types about 2 weeks ago bot builder then i sterted back in to the graphics. I suppose it easier for me to do graphics than programming, but will try again to learn some more stuff.I fear every thing but the ,most simple stuff is beyond me right now
I agree Jfk its kind of an adventure type level, just have to think of a really good gameplay idea, thats not too hard to program.
Right now its walk round and around till pearman drops dead.
I fear flag 4 is no good jfk, i wanted a subtle glass effect
for the phone box, thats why alphas would be better than masking, but the phone was a bit crap anyway, needs redoing


Ruz(Posted 2003) [#13]
one thing bot builder, isn't it better to have a 'collision' with the pick up( coin or ring) rather than how close it is.
So if pearman colides with gold coin, gold coin disappears and counter increases by one( or something)
just wondered really, you obviously know a lot more than me

I will start reading the tuts again now he he


Bot Builder(Posted 2003) [#14]
hmm. well, as you are still a noob(at least you can model and do textures), you probably don't know of the evil problems of the collision system ;) .

1)Collisions when you don't want to ie initial positioning of object

2)only sphere-stuff collisions

3)no "do nothing, just detect" collisions

4)no moving polygon collisions ie. sphere-polygon with the polygon moving.

anywho, the blitz collision is GREAT. fast and easy to setup. its just these evil minor problems. So, I would recommend the entitydistance function. it's not hard to use at all.

I just decided to code up an example cause I was a little bored.
;by bot builder

Type bonus
 Field mesh, radius, typ$, info
End Type

Dim keys_had(100)

Function updatebonuses()
 For b.bonus = Each bonus

  Select b\typ$
  Case "coin"
   TurnEntity b\mesh,0,1,0
  Case "key "
   TurnEntity b\mesh,0,1.5,0
   PositionEntity b\mesh,EntityX(b\mesh,1),EntityY(b\mesh,1)+Sin((MilliSecs() Mod 360)*2)*.5,EntityZ(b\mesh,1) ;give it a bouncey motion tweak the 2 and the .5 for different rates/amplitudes
  End Select

  If EntityDistance(player,b\mesh)<b\radius+player_radius Then

   FreeEntity b\mesh		;you could just hideentity
   Delete b.bonus

   Select b\typ$
   Case "coin"
    coin_count=coin_count+1 ;global variable
   Case "key "
    keys_had(keys_count)=info	;An array of the keys had stretching from 0 to key_count-1. The keys could be somthing like 1=red 2=green etc.
    key_count=key_count+1 ;global variable
   Case "ammo"
    player_ammo=player_ammo+info ;player ammo is a global variable. info holds the amount of ammo given.
   End Select
  EndIf
 Next
End Function



Ruz(Posted 2003) [#15]
dohh still looks complicated to me
Ahh well you needn't be that clever to be an artist anyway.
i wil try and get this working in my level and get back to you. man I must do this, not being able to code is really pissing me off


Jager(Posted 2003) [#16]
looks excellent, just like a bought one! :)


Ruz(Posted 2003) [#17]
genetic testing to save stupid people?. I think we should have more stupid people in the world.I saw this kid who was the combination of two genius(s), man he looked like nothing on earth.very brainy, but jeez.he could have been screened out really
Rich diversity in the gene pool protects from such things as inherent madness and addiction to potato based snacks.

But I am pleased you like the village


Bot Builder(Posted 2003) [#18]
I made it over complicated for fun. say, you had just coins.

;by bot builder

Type bonus
 Field mesh,radius
End Type

Global coin_count

Dim keys_had(100)

Function updatebonuses()
 For b.bonus = Each bonus

  TurnEntity b\mesh,0,1,0	;give it some movement, let the player know it's a collectible

  If EntityDistance(player,b\mesh)<b\radius+player_radius Then ;when the distance is less than the player radius plus the collectible radius(max distance)

   FreeEntity b\mesh		;you could just use hideentity b\mesh, and skip the delete type
   Delete b.bonus

   coin_count=coin_count+1 ;global variable
  EndIf
 Next
End Function


I took out the fields relating to allowing object specifics, and took the whole select case system out, as we know it's just coins. If this is to complex, read the tuts, oh please read the tuts.


Ruz(Posted 2003) [#19]
ok i will ask more simply. I want a place holder for the coin ie a sphere. where exactly in the code do I create it

b\mesh=CreateSphere() that was all I was stuck on .Player is already created/laoded , so thats not a prob


Ruz(Posted 2003) [#20]
ahhghh, programming makes we want to weep.I am going back to do soem more graphics on my level


JoeGr(Posted 2003) [#21]
Looks good. Very clean and solid-looking, and appears to be nicely 'explorable' for want of a better word.


jfk EO-11110(Posted 2003) [#22]
Ruz - I never use Types and People usually blame for this. However, you could also do this using an Array. You would then have the Entity Handles stored in an Array. This would be veryy simple if you have stored the POsitions of the coins in a file like this:
3.145 ;x
12.3 ;y
1.7 ;z
25.44 ;x
12.8 ;y
33.4 ;z
...
and so on

you could then simply read the file:
dim coin(10000) ; now we waste 40000 Bytes - hope this will not be out of memory :)
count=0
re=readfile("coincoords.dta")
while eof(re)=0
 x#=readline(re)
 y#=readline(re)
 z#=readline(re)
 coin(count)=loadmesh("coin.3ds")
 positionentity coin(count),x,y,z
 count=count+1
wend
closefile re

...
; and then in the main loop
...
For i=0 to count-1
 if coin(i)<>0 ; is it still existing?
  if entitydistance(player,coin(i))<2.25
   score=score+100 
   freeentity coin(i)
   coin(i)=0
  endif
 endif
next
...


It's not the way that I don't understand Types. For me it's just the way that I prefere to use straight indexes instead of "For each" Things because it's about ten times faster to access a Variable by it's index.

However you do it, it's a good idea to write a modified Version of the engine to walk around and "drop" things, coins or whatever you want. After some time you can then save their Coordinates to a file in a format like I described above. For my Editor I made a Fileselector with a Mesh and Sound Preview Mode, so I can first watch a Mesh before I load it. Plus Copy/Paste things aso.


Ruz(Posted 2003) [#23]
I really simplifed this to match what was learning in the basic tuts and came up with this, 'my' first piece of code which actually works( manily with your help he he)
Dim coin (10)

coin(1)= CreateSphere ()
PositionEntity coin(1),-10,-3,20
coin(2)=CreateSphere ()
PositionEntity coin(2),-10,-3,30
coin(3)= CreateSphere ()
PositionEntity coin(3),-10,-3,40

and in the main loop

For i=0 To 10
If coin(i)<>0 ; is it still existing?
If EntityDistance(player,coin(i))<2.25
score=score+1
HideEntity coin(i)
coin(i)=0
EndIf
EndIf
Next

;and after renderworld

Text 10,20,"score: "+score
this works man. can't believe it

Touch the coin, it disappears, the score increases by one
It would be good now to have something happen when you reach say a score of 3 ie a sound/special effect plays.


Bot Builder(Posted 2003) [#24]
; Assign a global variable for the sound 
Global sndSuccess

; Load the sound file into memory 

sndSuccess=Loadsound("sounds/success.wav") 

; Play the sound when coins=3

if coins=3 then PlaySound sndPlayerDie 



Ruz(Posted 2003) [#25]
thanks botbuilder, after I posted I realised it was fairly easy.I am keeping your other code saved so i can refer to when i am more advanced. hey dying is not much of a reward
for collecting 3 coins
Shouldn't that last line read

if coins=3 then PlaySound sndsuccess

I had a few probs loading a custom mesh for the coin, but did it like this. it was mainly syntax problems i was having

coin(1)=LoadMesh("models\diamond.b3d")
ScaleEntity coin(1), .1,.1,.1
PositionEntity coin(1),-10,-3,0
coin(2)=CopyEntity (coin(1))
PositionEntity coin(1),-10,-3,20
coin(3)=CopyEntity (coin(1))
PositionEntity coin(3),10,-3,30

The game could be as simple as you have to collect all the diamonds/coins within a set time or you die. not very exciting or advnced , but a good start for me


jfk EO-11110(Posted 2003) [#26]
Sometimes the simple Ideas are the best ideas.


Ruz(Posted 2003) [#27]
yeah I think have to start simple or I won't start at all.


Orig_Loki(Posted 2003) [#28]
Those shots look fine!!!!


Ruz(Posted 2003) [#29]
thanks Orig_Loki. This level actually started out as an unreal map for a world war two mod called 'sturm'. it has undergone lots of changes since then.

the mod 'pearman' , which this was for, appeared on the cd cover of pc gamer last year, got review of 62 I think it was.
it wasn't great though, thats why i decided to move it to the blitz engine. I have all the weapons/characters player arms etc all done.just needs a coder to get involved really. if its to be anything more than than a graphics demo


jfk EO-11110(Posted 2003) [#30]
62 in Pc Gamer? That's good! Usually the Mags rate Indy Developers by 10 or 20.


Ruz(Posted 2003) [#31]
It ended up being just a DM clone after the intention of it being a total conversion.
i just couldn't get the coders involved. Pearman was classed a bit 'weird' by some, although the guy from pc gamer was impressed by it, lots of people thought it stank he he