First steps of Falacy Gorx dev


Lua is a nice and fast to program script language. It allowed me, in combination with nice TIC80 fantasy computer, to  prototype quickly this game.

State on Friday March 26

State on Friday March 26

First night, after few hours of lazy coding, on Wednesday march 17 evening.

First concept test

First concept test


This allow me to verify main vessel move and background and objects persepective, I only set random point and 4dots, joined by line, for external bound, all cycled on z axis.

for z=500,0,-20 do
  x1,y1=proj32rot(o.x1,o.y1,z)
  x2,y2=proj32rot(o.x2,o.y2,z)
  line(x1,y1,x2,y2,2)
  [...]
  for i=1,#objs do
    x1,y1= proj32rot(oobjs[i}.x,objs[i}.y,z)
    circ(x1,y1,5,objs[i].color)
  end

Then draw the vessel.

After few month of coding on Tic80+Lua, I feel like everything in games are like particle systems:

* Lists with own behavior and look in function of time and interaction with world.

* Every game loop work the same way: 

init_game() {init things()}
loop()
  user_input()
  update_things()
  draw_things()
end


In this kind of arcade game, perspective is simplified, movement too, allowing with today tools to work quickly with an high level language and all basic functionalities ready. When at the game that inspired me time, they have both to made specific hardware cicrcuit, code mainly in assembly, perhaps with C code, and sync every single components. There was even no FPU, everything has to be computed by fixed point numbers, tricking with pre-computed tables. No I can lazily just use x=x*0.5 or pre-made math.sin(alpha) and eventually use floor(value), if integer needed (thanks to Lua).

perspective object scale

perspective object scal

The projection function has  to manage object size too, first version is a simple general object scale.


The second step I made, march 19 evening, is add the missile smoke. This is simply a list of circles, with perspective size correction. I add a max at the list that is the lenght of the smoke representation. It's near from a particle system, as most things in games as  I feel. The head go forward, and the follower, go the same direction and speed.


Fun fact, I added a mini-radar and speed, missiles are launched at airship speed + 5, and aiship can go to 20 max, so it can go faster than missils, missiles are behind, out of the radar rectangle, and when slowdown, come back to the screen point of view.


Saturday evening,  I have a little more time than during week. I added first vessel texture, the back of the vessel. and better  gradient on smoke. The radar show the direction of vessel.


Two missiles are also launched from a specific "launcher" location of the vessel, following it's angle, instead of only one from the center of the vessel. On the definition structure  of the missile, I add among parameters, start color, end color, and the function, interpolate automatically the color in the range, this allow to test lot easily and quickly different gradients.


On the Sunday morning, I played with smoke, added a first textured enemy, that is in front of the vessel. but is rotated with scene, don't follow vessel angle. The TIC80 has a very limited memory, so tricks are needed as on 8bits computers. I used a 2 bit colored texture to be able to add more textures later, and has to use poke() tricks, like in 80's BASIC language micro-compurer development. I used a pacman like ghost, it move at the same time / speed than vessel. I always found funny to see the birds going from left to right above the road, without moving in perspective in games like Out Run, with a car at speed of 200+km/h.  Very fast birds ^^. The goal is not the realism but to feel like in nature with birds moving above the road, and this is a good point of this action, and not simulation game. Twist the reallity for a good gameplay experience... a dynamic Gestalt.


So in the afternoon, I added outer space ambiance, by putting few filled circles as planets and random placed dots as distant stars, moving around on a black background. They are all generated at start. 3 planets added by hand with only x,y position, size and color, and starts in a list randomly filled with x,y coordinates and colors in a range to have different intensities.


I also added the first version of guided missiles, it goes toward a locked target, but has some limitation in the hability to go to this direction, the smoke can follow it with some celerity like move. Due to this constraints, and the simplified computation, this make a nice and aesthetic trajectory shape, with less computation^^. And bonus, this is one of the favorite aesthetic things in the game for me and some other players. All multi-criteria benefits are good to take.


On the evening, I added, asteroids, that rotate on themselves, and collision detection. There are still no z-sort there, but this is not too bad looking. I probably made the worst decision at this time... Fixing the background with tunnel/perspective vanishing point. This is good with rectangle showing the limits, but become unusable for player without them. Repairs are missing for understanding the movement then...



and then The main planet zoom, a big vessel going above the player vessel, and some reactors like effect on the vessels, by randomly blinking colors. I already had a good base of the game in few days, I was really happy of the result, didn't imagine that it could be done so fast :)...


To be continued...

Get Falacy Gorx

Leave a comment

Log in with itch.io to leave a comment.