Return to Blitz3D / windows 10

Started by Yue, December 26, 2017, 20:45:52

Previous topic - Next topic

Yue

The experience of developing a game.

I'm not a programmer, far from it, I've learned some things, but I'm very far from doing something spectacular, in this case at the moment everything is profit, I think I've improved a lot since 2007, and my code is much more structured, easier, more comfortable to maintain and at the moment it hasn't gotten out of hand enough to abandon it.

This is just a hobby, always something to learn, always something new to improve and possibly this year if I make a game, I see it very evident, although I don't sing victory yet, and then the question is. Why Blitz, simple because it still works and the push was that leadwerks has no support for vehicles, and AGK, it is very raw for me, however Bltiz3D is usually a world more and more pleasant, more quiet and since I continued to run on Windows, I will not see any inconvenience.

About the game, all my learning prototypes have had to do with Mars or another element of a prototype called "Pawn", menus, tests etc., I don't know how Mars is, I have no idea, I just know that if I weigh 96 kilos on Mars on earth I probably weigh about 30 kilos. In the end that doesn't matter, it's just a game.

The game will have to do with an astronaut named Rony Otto, who has to keep his facilities in optimum condition to survive, and among his tasks he has to maintain certain objects on Mars that help communications with the earth and future expeditions to the red planet.

That's it, the first month of the year is over and let's see what fate has in store for us.

Translated with www.DeepL.com/Translator


Steve Elliott

Mate, you clearly have the talent to make a game...No more excuses  ;D
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb



Yue

I've implemented something called Tween, the idea is that the game does not exceed 60 marks per second, this serves to make the player not go faster than it should be on much faster machines, and when the fps goes down much faster, the player will not go very slowly.
Now I have to go to work.  :P



Yue



Rick Nasher

Video for some hot particle action?  ;)
_______________________________________
B3D + physics + shaders + X-platform = AGK!
:D ..ALIENBREED *LIVES* (thanks to Qube).. :D
_______________________________________

Yue

It's not perfect  :-X, but to take the video out I'm adjusting that under certain circumstances dust particles and rocks are activated in each tire under certain conditions, for example that a tire is touching the ground and when it reaches a certain speed the tire.   :)



I'm gonna put your name on the game, you've always been the only fan of what I do. :D

Yue

System Particles in Wheels.

For p = 0 To 3

PositionEntity partRuedas[p]\emisor%, EntityX(vehiculo\ruedas[p]\ente), EntityY(vehiculo\ruedas[p]\ente)-1, EntityZ(vehiculo\ruedas[p]\ente)

Next



For p = 0 To 3


If phJointVehicleGetTireAir%(vehiculo\sVehiculo,vehiculo\pxRuedas[p]) = False  Then
If Int(phJointVehicleGetTireOmega#( vehiculo\sVehiculo, vehiculo\pxRuedas[p] ))>1   And OnParticulas% = False Then

For x = 0 To 3
Emitter_Start ( partRuedas[x]\emisor% )
Next
OnParticulas% = True
Else

If Int(phJointVehicleGetTireOmega#( vehiculo\sVehiculo, vehiculo\pxRuedas[p] ))<100
For x = 0 To 3
Emitter_Stop  ( partRuedas[x]\emisor% )

OnParticulas% = False
Next

End If


End If 
End If

Next



Yue

This is as follows, since the previous code complementing, if a tire did not touch the ground all the emitters of particles are deactivated, even if for example three tires touch the ground and a trowel does not touch it.

In this case, each tire that does not touch the ground switches off the emitter individually.

Now I'll run some tests and make the video.  :-X



Function UpdateParticulasRuedas( vehiculo.TVehiculo )



For p = 0 To 3

PositionEntity partRuedas[p]\emisor%, EntityX(vehiculo\ruedas[p]\ente), EntityY(vehiculo\ruedas[p]\ente)-1, EntityZ(vehiculo\ruedas[p]\ente),True

Next


;  - Emisor Rueda 1.
If  phJointVehicleGetTireAir( vehiculo\sVehiculo, vehiculo\pxRuedas[0]) = 0    And OnParticulas1% = False


If Int(phJointVehicleGetTireOmega( vehiculo\sVehiculo, vehiculo\pxRuedas[0])) > 2 Then

Emitter_Start ( partRuedas[0]\emisor% )
OnParticulas1% = True
End If

Else
If  phJointVehicleGetTireAir( vehiculo\sVehiculo, vehiculo\pxRuedas[0]) = 1 Or Int(phJointVehicleGetTireOmega( vehiculo\sVehiculo, vehiculo\pxRuedas[0])) < 2    And OnParticulas1% = True Then


Emitter_Stop ( partRuedas[0]\emisor% )


OnParticulas1% = False
End If



End If

; - Emisor Rueda 2.

If  phJointVehicleGetTireAir( vehiculo\sVehiculo, vehiculo\pxRuedas[1]) = 0    And OnParticulas2% = False


If Int(phJointVehicleGetTireOmega( vehiculo\sVehiculo, vehiculo\pxRuedas[1])) > 2 Then

Emitter_Start ( partRuedas[1]\emisor% )
OnParticulas2% = True
End If

Else
If  phJointVehicleGetTireAir( vehiculo\sVehiculo, vehiculo\pxRuedas[1]) = 1 Or Int(phJointVehicleGetTireOmega( vehiculo\sVehiculo, vehiculo\pxRuedas[1])) < 2    And OnParticulas2% = True Then


Emitter_Stop ( partRuedas[1]\emisor% )


OnParticulas2% = False
End If



End If

; - Emisor Rueda 3.

If  phJointVehicleGetTireAir( vehiculo\sVehiculo, vehiculo\pxRuedas[2]) = 0    And OnParticulas3% = False


If Int(phJointVehicleGetTireOmega( vehiculo\sVehiculo, vehiculo\pxRuedas[2])) > 2 Then

Emitter_Start ( partRuedas[2]\emisor% )
OnParticulas3% = True
End If

Else
If  phJointVehicleGetTireAir( vehiculo\sVehiculo, vehiculo\pxRuedas[2]) = 1 Or Int(phJointVehicleGetTireOmega( vehiculo\sVehiculo, vehiculo\pxRuedas[2])) < 2    And OnParticulas3% = True Then


Emitter_Stop ( partRuedas[2]\emisor% )


OnParticulas3% = False
End If



End If




; - Emisor Rueda 4.

If  phJointVehicleGetTireAir( vehiculo\sVehiculo, vehiculo\pxRuedas[3]) = 0    And OnParticulas4% = False


If Int(phJointVehicleGetTireOmega( vehiculo\sVehiculo, vehiculo\pxRuedas[3])) > 2 Then

Emitter_Start ( partRuedas[3]\emisor% )
OnParticulas4% = True
End If

Else
If  phJointVehicleGetTireAir( vehiculo\sVehiculo, vehiculo\pxRuedas[3]) = 1 Or Int(phJointVehicleGetTireOmega( vehiculo\sVehiculo, vehiculo\pxRuedas[3])) < 2    And OnParticulas4% = True Then


Emitter_Stop ( partRuedas[3]\emisor% )


OnParticulas4% = False
End If



End If




End Function