Jump to content

Flexman

Members
  • Posts

    916
  • Joined

  • Last visited

Everything posted by Flexman

  1. Buoyancy to match wave motion was why I was asking about calculating amplitude and normal for a given point in his video showcase. If you can match two points approx to match the mean wave height you can at least make it look convincing. Imagine a Zebra crossing (road markings with evenly spaced stripes) and you throw a number of sticks (importantly of the same length as the gap between stripes) to land randomly, there's a common distribution pattern of sticks with one end on a stripe and another on no-stripe. I forget the name for this but you mathematical types should recognise it. I saw Johnny Ball demonstrate in a studio once. But I would think the same thing applies to a long boat and a wave of known frequency, since your models and setup of the waves are known values a little bit of fudging could make it look convincing for little effort. And another thumbs up on the progress.
  2. I don't have a thought, just a sound... *ugh* It shouldn't matter, a game is a game and whatever works for you then go for it. You can script things in LUA in Unity easily enough but the whole system is built around plugging things together. In LE2 it was a sliding goal post which is still awkward to use (get an object reference wrong and the editor will EXCEPTION quit on you). It's hideous to work with for anything but simple things. This will change in LE3 as you know already. We're promised single step debugging loveliness which is the bare minimum you'll need but don't have now. As a language it's flexibility can't be beat. Loose type casting, everything as an object. I wouldn't use it for a full game unless it was a simple one. As you say, current implementation is awkward. But it has its uses. I tend to use it for entity level effects and static animations. Not much more but it's pretty good for that.
  3. Flexman

    Totally Tubular

    I feel a 6DOF tunnel shooter coming on. Anyone else?
  4. Someone's having a happy attack Group hug.
  5. As an aside, when building an FX system for CombatHelo we used SendMessage(....) which can take a delay in microseconds as a parameter. The FX system uses a dummy entity in the scene that works as a mediator (if you know your design patterns). It creates and removes FX objects which might include emitters, sounds, lights, even structure collapse. This example code is part of the structure collapse update method, it's fired when the building object has reached the end of collapsing motion. The message id EFFECT_REMOVE_ENTITY is sent to to the mediator to remove itself after 20000 ms which is enough time for the audio and dust effects to dissipate. Typically the building is replaced with a destroyed version (or pile of rubble) but we don't want the original model too. game.scene.SendFXMessage(TEntity(fxEntity), EFFECT_REMOVE_ENTITY, fxEntity.position, 0, 0, TEntity(fxEntity), 20000) ; A mediator approach lets you create compound effects made from your own pool of effect code to make many variations. My code ended up being large due to having lots of extended classes to deal with specific kinds of objects. Not just for explosions but also ambient audio effects, triggers and a bunch of other things I need in my game. What it can't do is jump around, once it's been sent to the message queue you can't get at it till it plays.
  6. While waiting on fixes for the flight-model and control inputs, putting some game into the game we talked about ranges and how performance measuring was going to work. In addition we wanted to add a little variety which required working mob AI. So nothing fancy but I managed to rustle up a simple finite state machine FSM to get some tanks and cars running around. Our design uses a group formation system (a group is a number of individual units that share common logic, e.g a tank platoon) and if you've ever used Missioneer you'll be familiar with the concept. Currently tanks are driving around a small test tool I'm using to test the module, switching formations, revving engines, exhaust smoke. Performance is king so updates are interlaced, no vehicle physics are required so animation suffices. Each group member has a goal pivot, when the formation changes the individual vehicles seek their pilot according to their driving behaviour. All the pivots are parented to a master pivot controlled by the group. This way you just need to update the group position (e.g movement orders to x/y) and the rest takes care of itself. We can look into expanding the states later when we want them to do more complicated things, and do that on a per unit basis. Tank gunners will want to turret to target when attacking, manpads will simply turn to face. Same state but slightly different logic per unit. And this can be done in LUA level by setting the models "fsm_mode" key. That makes less work for me and gives Dave the artist some nice toys to play with. At the end of the day I at least have a tile based tank engine to play with. I'll throw up a video. For the gunnery range we don't need anything demanding; some AI road following traffic, people in groups and the odd vehicle following a set of waypoints. Nothing spectacular or difficult there. That hardest part is turning the 3D geometry of the road network into a navigation grid. Then your mob groups need to know if they are supposed to be following the road or their own formation (switching as they move from one to the other). Roads The one problem I have in getting AI traffic running around is putting together a nav-grid I can work with. Our roads are large models (2 or 3 assorted) that are built in 3D Max using a height deformation modifier (the same height-map used to build terrain layers). And it mostly fits. I think we need to flatten it out so only the surface triangles can be read and turned into usable data. Speaking of art, "Mossie" has been given some love. Further reading: FSM gate scandal - Why they are old hat Source
  7. Flexman

    Freaky Friday

    My week not so productive, between debugging helicopter physics and implementing mob movement I've been browsing the gaming news and press. The Utah teapot video was interesting, I spent nearly 5 mins trying to come up with a cleaver sounding word for a 16x16x16 grid and best I could do was "sextusdecicube". Rumor mill has it that Playstation 4 and XBox Next will both feature what I dubb 'FU technology', a feature to prevent you from playing old/pre-used games. Consoles are already less relevant. Patents being filed for even more exotic controllers and methods of interaction. It appears there's a huge room of monkeys coming up with ideas and they are being flung at the patent office in the hope that some of them stick. Is it a Kinect? A tablet? A console? Do I stick it up my nose? Never mind creating content, that's what people want. The UK has the biggest internet based economy as a percentage than anywhere else. At the weekend the UKs National Computing Museum hosted the 30th birthday of the BBC Micro, brining back together the players who created it and then designed the ARM processor now used in nearly every smartphone. The Raspberry Pi was demoed running a BBC emulator adding to the list of working emulators for classic computers. Not bad for a such tiny device. They have been delayed yet again due to radiation emission testing (the HDMI port was being over-driven and causing excessive RFI) And now I've taken to writing long comments to kill 15 mins instead of getting on with some group steering code. The next comment will be far more interesting with less waffle I'm sure
  8. I think if you can say you took measures to encrypt content to protect it then you're covered. That's really what's important. I created software for Wal-Mart used in legal cases which was all about liability and taking reasonable steps; sweeping vegetable aisles every 20 mins, barrier maintenance, safe locking, POS point of sale cleaning, the list of things you must do daily runs into the thousands. So long as you've done what can be demonstrably be reasonably done and complied with the license requirement you're good even if content is still ripped.
  9. We got bitten by a reputable site which were selling models submitted by someone who ripped them from an EA game, I wonder if it was the same person that got kicked from Turbosquid. The vendor did the decent thing by alerting customers when it was discovered, they later offered replacements. We had to rebuild the models from scratch ourselves so they matched the same footprint, just to avoid readjusting everything in the scene. That would have been a lot of work. As gamecreator says re-sellers can get duped too. If something looks too good to be true, well worth taking a second look (if you're planning to distribute in any way).
  10. You could also encode a password string and include a function to decrypt it, no need to store a pak password as plaintext, this will comply with any 3rd party requirements for taking reasonable measured to encrypt models.
  11. oppsie, just been playing with it as it happens. luastate.L is the Leadwerks Lua state
  12. That sounds like a good way to go forward Rick.
  13. OK, thanks for the advice so far. I got it loading how I want and up to 8 scripts hooking an Update() function. I need a little more help here to do the next bit. This is the first time I've tried to work with multiple scripts and need a little guidance and hand-holding from you chaps with experience. A little knowledge is a dangerous thing here, I'm more comfortable using simple data structures and flags rather than VMs to do this sort of thing. So anyway.... Using LEs single LUA state to load in quest scripts (up to a max of 8). An example of such a script with an init, quit and update.... require("Scripts/hooks") local s = "mission_test.lua" function MissionInit(id) s = "INIT mission_test.lua " .. id end function MissionEnd() RemoveHook("UpdateWorld",MissionUpdate) s = Nil end function MissionUpdate() print ("mission update called..." .. s) end AddHook("UpdateWorld",MissionUpdate) Here's what I'm not to clear on. When I load and run a script I can call a function in it. But only the function in the last loaded script. How can I change the context of a specific script. e.g A call to "MissionEnd()" will always execute the function in the last loaded script. What if I want to call it in the first loaded script? See what I mean by basic questions here? I wish we could hang-out in a virtual class-room to cover this stuff sometimes. Note: I have avoided using events to keep things simple for now.
  14. Supposing you want to implement a quest system where each quest is a lua script. quest_101.lua quest_102.lua quest_103.lua ... In each quest script I want to call function "Update()" in a chain. Similar to how TModel LUA scripts are processed. Is it good practice to create a virtual machine for each script? Or use one VM and call the "Update()" function in each script? And if not, what is the correct way to index them and call the same function in each script? example source Local vm:Byte Ptr = luaL_newstate() luaL_openlibs(vm) lua_dofile(vm, AbstractPath("abstract::quest_101.lua")) lua_getfield(vm, LUA_GLOBALSINDEX, "Update") lua_pushinteger(vm, 0) lua_call(vm,1,0) script "quest_101.lua" function Update(s) -- mission update code here end
  15. Add to that colour blending, perhaps done via some KeyFrame object (which can be used for many other properties). But some means to cycle colour and position.
  16. We spent a lot of time refining simple compound structures which I think could have been built VERY quickly in this manner, they are simple walls and buildings joined together in various combinations. What's the term for that, greeble or something? We sacrificed the ability to blow down walls and inflict local structural damage for performance. I have no regrets about that. I totally get it now and see a use, indeed would have had a use for it but just didn't know it. As for editing of objects, I think (taking some experience from watching my kids play LittleBigPlanet) you can get away with an awful lot by drawing an outline with various shaped brushes, then extruding it along an axis. And doing the same thing with a different shape and joining the two parts together. Repeat. It's easy enough to do with a joypad and child's play.
  17. Ahhh, I see, that makes sense. I remember seeing early QUAKE level editors which it reminded me of. I didn't realise there was still a demand for it. So it's good for creating rapid prototypes of level geometry. OK I can appreciate that. Basic canyons decorated with Pure3D rocks come to mind as well as implementing colliders which are a pain. I learn something everyday Thanks for all the replies. < gets it now
  18. Can I ask a silly question, who is this for? I might be missing something (quite probable in my deteriorating age). I can't imagine if you were making a game that you would be creating assets in anything other than some dedicated package to get decent results. This is fine for throw away programmer art I guess. But looking at it from a practical "I want to do this in my game..." I want to punch a hole in some object (a logical operation) or morph it in some way. Beyond that I find it hard to see an artist wanting to do much with it. Gluing multiple objects together (combining meshs) is something an artist and programmer might want to do at run-time. That has a ton of uses. Blowing a hole in the side of a mesh is another (breakable walls with specified extent). I just come at it from the point of view of "how does this enable me to create a game." And the artist I work with use Max to create content. If I want houses there's a ton of nice ones from Dexsoft or Arteria etc. that look professional for minimal cost. Again apologies if I've missed the point.
  19. We love particles. They are often used to cover up a multitude of sins in XBOX titles as you say. Exploding pixels everywhere distracts the eye, they are the jewellery of games, pixel-bling. Those old ATARI games had to fit game logic in the few microseconds between raster lines. The hardware dictated the look (read Racing the Beam from MIT Press for more).
  20. Cheers, count me in as a customer for this library. After reading (and re-reading) it sounds ideal. The remaining hard part is then writing the control logic. Going from a prone to a kneeling state, then aiming, that sort of thing.
  21. Tweening? I only mention it as it's something I found useful beyond simply curving values and useful to have in a particle system as well as GUI components.
  22. Just to add to the discussion (and it points to forums for another engine but the principles and problems are the same) http://forum.unity3d.com/threads/50643-How-to-make-a-physically-real-stable-car-with-WheelColliders
  23. What is the source of the character you are using for your demo? I want to quickly test it, don't mind if I have to buy it somewhere.
  24. Just a short post since I'm busy being pulled in a dozen different directions; I got roped into helping someone create a short health and safety film, drafting a project proposal, raising finances and even managed to fix a long standing bug in Combat-Helo. Now the sensors, line of sight and all that guff is now WORKING again, Hooray. A quick background on that, an engine update needed to fix some occlusion issues slightly changed the Model hierarchy in a subtle way that changed how actual filenames of models were retrieved, long story short, they no longer matched the ones in the vehicle database as they had "lod1" suffixed to everything . But hey it was a quick fix once traced, I digress as usual. Talented Paolo, creator of many a fine mascot has been working on some fictional nose-art and patches for the squad mascot in Combat-Helo. We knew we wanted it to feature a mosquito, the mosquito is the nickname allegedly given to the AH-64D by Taliban forces. Incidentally it was also the aircraft my father was attached to during World War II so I felt it had a double meaning. The character will be visible on squad patches and eventually be available as nose-art. "Mossie" copyright 2012 Paolo Pomes Below is an earlier draft of "Mossie" to help decide on nose style, the nose later became the Apache's signature Bushmaster cannon. Please post your thoughts and comments on "mossie", suggestions for what he can hold in his left hand are invited. Source
  25. Flexman

    Even Deeper

    I accomplished ... er... something to do with calculating exhaust gas temperature for turboshafts based on an 1983 NASA paper (not as eggheady as it sounds) Everyone else is having more fun than me. It's not fair. Will the LUA debug work for scripts called during normal program execution? e.g. C# LE3D program loads a model with a LUA script
×
×
  • Create New...