(January 2019) Monthly WIP & Screenshot thread

Physics bug fixed:

One down… too many to count to go. It is fun pushing the ship over the cliff, though.

Edit: I make these videos quickly so that they don’t waste time… but then I probably shouldn’t have thought “Hahah, Drunken Sailor would make a great song for this…” Because that was a two hour sidetrack. :slight_smile:

13 Likes

It’s cool, Man :slightly_smiling_face:
What model are you using for saving ship blueprint (prefab/configuration) on server side ? Are you using ES, JSON, J3O or Binary format ?

It’s the format that my BlockEd application produces since I made the ship in BlockEd.

It’s a simple text based format… this is the seesaw object in that video:

%BlockEd version 1
%size: 40, 40, 40
%order: y, z, x
%compression: none
%min: 0, 0, 16
%max: 39, 3, 23
%y:0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
%y:1
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
%y:2
53, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
53, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
53, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
53, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
53, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
53, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
53, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
53, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
%y:3
0, 47, 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47
0, 47, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 47
0, 47, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 47
0, 47, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 47
0, 47, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 47
0, 47, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 47
0, 47, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 47
0, 47, 47, 47, 47, 47, 47, 47, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 47, 47, 47, 47, 47, 47, 47

2 Likes

What will we do with drunken physics?
What will we do with drunken physics?
Early in dev cycle

Way hay and down she tumbles
Way hay and down she tumbles
Early in dev cycle

2 Likes

Salmanu is the second Boss Mob in Skullstone. There is a bit of interesting story about him - you’ll find everything in the game, reading notes and talking to NPC.

Here in this video I made quick fight with him, testing his new skill ‘summon minion’, which I just finished coding. He also deals nice AoE damage and casts debuff ‘confusion’. That was the reason why at some point I turned right and left several times in a row.

10 Likes

are those attacks / spells you perform by clicking under the characters, are they bound to hotkeys ?

Weapon attacks are bound, skills are not at the moment.

can you make it break into pieces ?

break what?

dance

1 Like

P.S.(Pre Script) This is my first game, so it’s not that great…

Here is my first game attempt: “Crushed”. Your main objective is don’t get crushed by the smashies above you. Also, try to pop the other players with the random spear attached to the front of your player which happens to be a randomly colored sphere. Also approximately 1/4 of the game is bugs XD.
Imgur doesn’t like me, so here’s some images from dropbox.

If you want to play it, Here is a zip file with the libraries and MyGame.jar Controlled entireely with the mouse(The android build is even buggier because of some things i need to fix to help with touch.)

P.S. If the game doubles/triples its speed/ shows a UI where it’s not supposed to be, an appstate wasn’t loaded/unloaded properly, so just restart the game.

Also, if you playit, tell me how you liked it so far! :slight_smile:

2 Likes

A little video of the car game.

The mini-map is el-standardo. A viewport with an orthographic view, rendered onto a texture with a mask and an overlay.

The speedometer was a little bit more fiddly. It’s a bunch of lemur labels positioned around a circle radius and rendered to a texture as an impostor of sorts. It allows me to choose the max speed of the vehicle and auto-generate the numbers around the speedometer so it works for all vehicles and eventually the rev counter. I had a bit of trouble figuring out how the GUI camera worked but in the end it saves a bunch of vertices and objects and turned out pretty well.

For the collision I used a shared pool of rigidbodies. They generate a mesh from height-map data that is a different size from the terrain. The terrain is 64x64 which is too big really for a collidable mesh, so it instead generates 8x8 meshes and anything that needs to collide with the terrain pulls/pushes to a shared pool. For the player it just makes a 3x3 grid around it. For vehicles the grid around it grows from a minimum 3x3 grid with directional velocity. So as the vehicle increases in velocity the grid increases in the direction it travels. This is so that it doesn’t quickly get to the end of a collision mesh and the system can keep up with the generation, and if I get T-boned for example, it will just grow to accommodate for it. It also means when I eventually add auto-generated roads and AI, chases/races will be nice and smooth and cheap(er).

Skid marks are basically a strip of triangles of a maximum count, a kind of FIFO queue. As new marks are generated, the oldest ones are removed/re-positioned. Dust clouds are standard particles. Both are emitted based on each individual wheel slip.

11 Likes

Pretty neat, though I have to point out a few things.

  • the camera seems to jerk a lot in 3rd person, not sure if it’s because there’s no slerp or because its position is set at the wrong time in the update cycle so the car moves before the camera does or something. Could just be youtube as well.

  • cars seem to slide cross the ground when parked slightly (like at 0:38), perhaps the terrain friction is set too low?

  • turning seems slightly slidey too, probably related to the previous thing

Otherwise well done, especially on the dynamic terrain collider pool, though it seems a bit unnecessary. Doesn’t bullet run it’s own octree? Could’ve probably just loaded the entire thing in small split pieces without any performance change.

Yeah it’s just hardwired to the Y, so you get every bump like a jackhammer. No lerping yet.

Yeah. There’s a really small gap between too much grip where it slides as expected, or just flips the minute you try to turn. I need to zero down on that.

Yeah, mostly just to amplify the skid marks. But is related to the previous point as you say.

It does, but when racing round a track for example, the AI may be half way around, or a mile ahead or something, so the collision pool lets them go as far away from the view, or even outside it, and still collide. I just remove the model from the scene when they’re out of the visible scene. The whole scene is 9x9 64x64 grids - which is pretty huge for a couple cars that may be sat together in virtually the same space or half a mile away from each other. It just lets the collision meshes stay local to the objects that need it and use the smallest collision mesh/count possible.

2 Likes

Lower the center of gravity if you can… as low as possible. Like at the base of the wheels low if necessary.

It’s nothing spectacular, but lately I’ve been working on a dialogue system for interacting with NPCs, and also to be used in cut scenes. I primarily wanted to get to work on a small, interactive tutorial that takes place on the starting island in the picture, but I realized I needed a dialogue System first. So i spent a a bit of time making an organized system for NPC dialogue and conversations, both text and audio.

The audio isn’t depicted by the picture obviously, but I set things up so that each “Dialogue Frame” contains a few lines of conversation, as well as a reference to a matching audio file with the voice lines, so that will make things easy for implementing voice audio.

Right now I did not include the audio, since I am currently doing the “voice acting” myself while I was testing this, and of course the NPC I chose to give the first few lines to is a female, so my deep voice doesn’t quite match up no matter how hard i tried. So I took a screenshot rather than a video to spare you all from hearing my “Princess Adelaide” voice :laughing: but it works for testing purposes of course

15 Likes

Now I really want to hear it…

Maybe I’ll do a video with the audio once the tutorial is finished… Even though I’m a man doing a female voice, i still gave it my all lol :stuck_out_tongue:

I’m also going to be “voicing” one more character for the tutorial, which is a Ghost Stag that you follow around and learn about the game from, so my voice should at least match for him https://sketchfab.com/models/1150d94d7b5f4e3ca422b6dd503b3080

Well funny thing though, something I saw on reddit a while ago about the voice acting in the original Incredibles film:

Bird’s voice for the character originated during the story boarding process, during which various Pixar employees typically provide characters’ voices temporarily while the filmmakers and animators organize the film’s pacing and staging

Although these voices are usually eventually replaced by professional actors and voice actors, there are some situations in which “those voices stick”, as was the case with the voice Bird had created for Edna.

Several actresses had been considered for the role; one actress, asked Bird to repeatedly demonstrate his interpretation of one of Edna’s lines until telling him that he should simply voice the character himself

:smiley:

So maybe I could be fit for the final voice of Princess Adelaide after all, I guess time will tell :laughing:

2 Likes