GDNet+ Basic
  • Content count

  • Joined

  • Last visited

Community Reputation

2337 Excellent

About alfith

  • Rank

Personal Information

  • Interests
  1. Hidden gold

    And now, in the dark with the lights under the cave: [sharedmedia=gallery:images:8564] The photo is not very good but the effect is visible.
  2. Cave

    Small cave made using polystyrene
  3. Hidden gold

    Thanks. This is my first creation and selling things is not an objective right now. I will practice more and maybe if someone is interested in one of the resulting scenes I will sell it.
  4. Hidden gold

    Hello. I did a little something the past few days. It is a cave made with polystyrene. I cut some pieces, scratched them with a knife to shape them: [sharedmedia=gallery:images:8537] I did two bridges and some details with wood and wire: [sharedmedia=gallery:images:8541] I then painted and glued the different parts: [sharedmedia=gallery:images:8542] [sharedmedia=gallery:images:8543] [sharedmedia=gallery:images:8545] I finished the sides using glue, salt and paint: [sharedmedia=gallery:images:8550] [sharedmedia=gallery:images:8549] I added a wire tree and some rocks: [sharedmedia=gallery:images:8547] And I now have this: [sharedmedia=gallery:images:8551] [sharedmedia=gallery:images:8562] [sharedmedia=gallery:images:8558] [sharedmedia=gallery:images:8554] You can see more pictures in the gallery: [sharedmedia=gallery:albums:1228] (I did a small part with lights to go under the cave, I will try to take a photo with the lights on but I am not sure about the result) Have a nice day !
  5. At last, an update...

    Hi. After a long pause, here comes an update on my game project. But first, some information on one of the things that took me some time during this long silence. I did a little board game. In a few words, the goal, for each player, is to find a battery cell hidden somewhere in a space station floor and put it in the reactor to avoid the station crash on earth. Of course, some creatures are here to make things difficult. It can be played in cooperation or solo as it is possible for each player to go from a floor to another to help the others. Some photos of the "construction" [sharedmedia=gallery:images:8359] [sharedmedia=gallery:images:8360] [sharedmedia=gallery:images:8361] [sharedmedia=gallery:images:8362] [sharedmedia=gallery:images:8363] [sharedmedia=gallery:images:8364] [sharedmedia=gallery:images:8365] And the initial state with only one player: [sharedmedia=gallery:images:8366] Attached to this post, you can find the rules (in French but if someone is interested I can do an English version), a "print pack" with the various parts as png files and an "edit pack" with source files (xcf, odt, blend). I also did a simulation in Python to let the computer play for me a lot of games to check some parameters (player's health, medikit "power", turns). It is also attached (do not pay attention to code quality :unsure: ). And now, my shoot'em up... I did a lot of things under the hood but I have some visible things too: - the main menu allows the selection of a 1 or 2 players game, - only one spaceship is visible when the 1 player game is chosen, - the health level and the score of each player is displayed, - the score is updated when an enemy is destroyed, - it is possible to define the objects that will be considered as the "Boss" and its health level is also visible when it is close to the player, - I improved the smoke and the explosions. Here is a video with all of the changes (the capture is still not very good sorry): Next: nothing visual probably as I have to change the way the objects that have to be updated or displayed are gathered across the level components... See you soon I hope.
  6. Board game

  7. Various

  8. Shoot

  9. Effects

    Hello. The work on the effects took longer than I thought but the result is not far from what I was expecting. It is now possible to create things like smoke trails, explosions and maybe other effects that can be achieved with the system. They can be associated to objects as active effects, that is while the object's energy is above 0, or they can be associated to objects as destruction effects and triggered when the object's energy reaches 0. Each category can have more than one effect. In the video below, you can see smoke trails, small impacts of shots on the structures and big explosions. How it works. The definition is similar to the one of the weapons ( - the different effects are described in a file - the objects have 0 or more effects instances associated to them in the objects description file. An instance is a reference to an effect and its location relative to the object. - the objects instances (from the level file, referencing an object) have effects states that are references to the effects instances and the dynamic properties (number of points, current radius, ...). The effect can be of type "trail" or "sphere". It is defined by a material ID, the number of sides (think of a lathe), a maximum number of points, an initial and maximum radius and a few other parameters. The "trail" and "sphere" are defined in the same way. The effect state contains a list of points/radius couples. The "sphere" type is created by adding at once the maximum number of points along the diameter with, for each point, the radius of the corresponding latitude circle. The "trail" is created by adding a point calculated from the parent object position at each update (the oldest point is removed when the maximum number of points is reached). The level maintains a list of the active effects states. The list is built from the visible objects and the effects still active after the parent object was destroyed. These effects are updated at a specified rate (set in the effect description, can be different for each effect type). The effects in this list are given to the EffectsVisual in charge of the building of their visual representations as geometries. Finally, the geometries are rendered as any other objects by the renderer. The EffectsVisual converts the effects states points into a group of cones/truncates cones/cylinders depending on the radius associated to each point. And voila. I did not do a lot of optimization for now as I may rework some parts when adding more types but it is fast enough for now. Bonus image: a wire-frame view. It is clear that I have to work on some lighter trees and grass. [sharedmedia=gallery:images:7412] Thanks for reading.
  10. Hello. I do not know if it is related but accessing the screenshot showdown page ( is really slow since a few days. It took me nearly 3 minutes to get it loaded. It is the same when loading a forum page with the IOTD at its side like or the page of a screenshot like The other pages of the site are loading without problem.
  11. Let's rock

    Thank you. I noticed a typo in it, the rotation matrices creation should be: mrwx = Matrix.Rotation(rx, 4, Vector((1, 0, 0))) mrwz = Matrix.Rotation(rz, 4, Vector((0, 0, 1))) The vectors are probably normalized before being used but it is better like this.
  12. Let's rock

    Hi. I don't have a lot to show this time. I fixed a few things and added others. Here is the list in no particular order: - Disable light when linked object is no more active. The bug was visible in the latest video. - Corrected weapons group activation. In the previous video, a weapon was not shown because the activation was not correct. - Added guided missile weapon type (for players and enemies). - Corrected pattern following. The optional pause at any control point was working only when at the first control point. For the guided missile weapon type, it was not really difficult: in the same manner I have a pool of objects instances for shots, I added a pool of patterns (like the ones used to move objects in the demo menu and enemy ships in the level) consisting of only two control points. The first point is always and when a guided missile is fired, I update the first control point tangent to be the "X" vector of the weapon, the second point to be the position of the target and its tangent to the vector "target - weapon". When the shot object is updated, if it has a target, I keep updating the second point of the pattern to match the relative position of the target. All the movement is done by the existing code for pattern following. The added code is small and it is working quite well. I also played a bit with Blender. I wanted to rework my rocks. I had a simple way to create one (I may have seen it somewhere but I don't know where) and finally did a small script to generate it automatically. The method is: - create a cube - create a plane - rotate the plane and move it away from the cube centre - cut the cube with the plane - repeat with more planes This is a very basic method but it gives what I need. I added a few things: - the resulting object is bevelled - a parameter allows to smooth or not the final object Here are rocks generated with this method in only one action: [sharedmedia=gallery:images:7267] I attached the script if someone is interested. Maybe I will add a UI to set the parameters instead of modifying the values in the file. Just load the file in the text editor of Blender, empty the scene and hit Alt+p. Have fun.
  13. Pick-ups

    Hello, The hard work is going on. Here is the list of what you will see in the new video: Enemy firing I have a dummy object (no geometry associated to it) with the camera locked on it that moves forward in the level. When an enemy is close enough (in the "X" direction) to this dummy object, it starts firing. The weapons properties (fire rate, delay between bursts, burst number of shots, ammo...) can be used to limit the time of the attack. In the video, I put the second spaceship in front of a enemy to get it destroyed. Auto-fire A key can be associated to the auto-fire action. When enabled, every weapon will fire as soon as their properties allow it. In general, it is a good idea to activate it but in some places, it can be preferred to disengage it: some powerful weapons will take some time to reload and it can be necessary to control when they are used. Here, I activate it at the beginning, cut it and re-activate it near the end of the video. Pick-ups I added the pick-ups. For now, I have energy and weapons activation pick-ups. The energy pick-up restores a fixed amount of energy to the player. The weapons activation pick-ups are used to enable more powerful weapons. I added one of each type in the level. The first one is the energy restoration one, then each pick-up activates a different weapon in the order they will be available through the game. For now, there are 8 weapons groups (see The pick-ups geometries are not finished. The shot geometries are far from final and some are not of the correct type ("classic" missiles instead of laser or homing missiles). Laser I added a laser weapon. It needed nearly no additional code. It is very simple: a sphere and a long cylinder with small thingies around it (again, I will work on the geometries later). The laser is an object defined with a very short life time, a high rotation speed around the X axis and a really large amount of energy (it will not be destroyed when colliding with an object, only when its "life time" will be exhausted). The weapon has a big fire rate. I added the cylinder bounding type and added the collision code for it. The Blender script to export the geometries has been updated to allow the definition of the cylinder bounding volume. The only "problem" with that is that the laser goes through objects and can destroy more than one enemy at a time. I think I will make the one in the video not very powerful. It is not visible in the video, but the last weapon will be a very big and powerful laser with a medium reloading speed. A little word on the pick-ups. I added a Bonus class. In the level definition file, a bonus is defined by its type and an object instance (defined like any other in the level). At first, the associated object instances were added as any other in the vector of dynamic objects. I had the "clipping", the update and the collision for free. But I had this problem: I was able to destroy the pick-ups by shooting at them. I could have added a "type" property to the object instance but I was not happy with this as this property may only be used to distinguish a pick-up from any other object. So, what I did is this: the small amount of pick-ups that will be present allows me to add the "Bonus"es in the level class and go through them all to check for collision with the player. The associated objects on the other hand are added in a specific vector of the level sectors, to avoid sending them all to the rendering part. I think that's all for now. In the next update: something like homing missiles, particles or the "HUD" who knows ?
  14. Collisions and weapons

    Thanks. I hope the weapons system is versatile enough for what I planned. The challenge will be the laser type but I have something in mind to get it fitted in the system.
  15. Collisions and weapons

    Hi, After quite some time, here comes a new video showing a very early sample of collisions and weapons. What you can see in the video is the player shooting missiles bursts. An enemy spaceship is destroyed by one and others are colliding with a building. The collisions: in Blender, I define a bounding sphere using a spherical "empty" that allows to specify the location and size of the volume. If there is none defined, a default one is created in the exported file. The game code is meant to accept a hierarchy of bounding spheres but it is not needed right now so the implementation is not complete. Various collision checks are done: - players / [enemy shots, objects of the visible sectors, objects generated by the layers (trees and rocks in the video)] - players' shots / [objects of the visible sectors, objects generated by the layers] - enemies' shots / [objects of the visible sectors, objects generated by the layers] Enemies / objects collisions are not tested as they will be constrained by fixed paths. It will be easy to add if needed later. I separated the shots objects to ease the updates and limit the collisions checks to do. The weapons: for now, only simple missiles are present. They are created at a specific location of the parent object and in a defined direction. After that, they will travel in the same direction. Weapons are described in a separated file with: type, fire rate, burst rate, number of shots per burst, maximum ammo and object ID (it defines the geometry, the collision damages, speed, ...). I have then the following organization to describe an object "template": - an object (let's say a spaceship) has one or more weapons groups - a weapons group has one or more weapon instances - a weapon instance has the matrix for relative position/orientation of the weapon on the object and is referencing a weapon (the one from the weapons file) - a weapon has the type, fire rate, burst rate, ... and is referencing an object (what the shots will be like) In the level I can now have: - an object instance (the player's spaceship) that is referencing an object (the spaceship) and that has weapons states - a weapon state has the current ammo count, the fire timer, the burst timer, the group active state and is referencing the weapon instance With this, it is really easy to share descriptions of weapons between objects, it avoids too much duplication of data and is easy to customize. I can have weapons groups with different weapon types, the same weapon at different locations on the parent object, it is ready for new weapons pickup (that is in fact a simple weapons group activation), ... In the video, I did only one weapon group with four times the same weapon around the player. Next things to do: disable the shots when they are going out of the world boundaries (or after some time), make the enemies use the weapons, other types of weapons like guided missiles, lasers. Mines are already available: I just have to set the shot object speed to zero and I can define a large "empty" in Blender to get something like proximity mines for free. Thanks for reading.