-
Posts
916 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Downloads
Everything posted by Flexman
-
Today I added the ubiquitous chat console complete with 4 colour coded channel presets, Global, Side, Group, Vehicle. Complete with command parsing (/setkey lets you send keys to any object you're standing before which is handy). The console also has a command history using the UP/DOWN cursor keys. Chat entry toggled by hitting the ENTER key ala Warcraft. Be aware that the primary action key has moved from the ENTER key to the "P" key (P for primary and also handily close to the square brackets used for menu navigation. Clipboard paste is supported via.. Extern "Win32"{ Function OpenClipboard(hwnd%) Function CloseClipboard() Function GetClipboardData:Byte Ptr(Format:Int)}if(OpenClipboard(0)) String.FromCString(GetClipboardData(1)); Console text entry mode also disables all input mapper KEY_DEVICE inputs to avoid conflict. It was important to Flush the keybuffer on exit otherwise all those spaces translated into SUPER JUMPS after entering text. Besides, you should always flush before you leave. Network comms chat is working fine except an occasional (Not Responding) display "freeze" only when the server was active. I thought was a problem with my Raknet interface but logs show packets still being processed by the game. The problem seems related to not wearing the TrackIR pro-clip device when the network is active. As soon as I put on the head tracker device the display responded normally as if nothing had happened, even chat catches up. Most odd as I've not experienced this with TrackIR before. Commands for server control are working including IP ban/unban. I do need to harden the user interface for network connections, the menus need to change to show the connection is already active and offer a disconnect. And the client needs a suitable connect-time period before giving up and allowing a re-try. We will begin NAT testing when I've got that sorted. Last night I made a DLL into which I was able to pass a structure containing flight data. It did nothing beyond reading it back but will be handy for exporting game data to third party programs. My TrackClip Pro has fallen apart. Only glue is holding it together. Source
-
Is there a way to turn off child objects from being occluded? I'm sitting in a cockpit and chunks of it keep vanishing when I turn my head. The other occlusion problems I had have been fixed.
-
Yeah I like that. One ping only please. I remember this really super modern sub game years back that was played using mostly the "waterfall" sonar display. I'd just bought a Gravis Ultrasound audio card and having to listen to find contacts and use the sonar heat-map was really cool. SSN Seawolf maybe? Don't recall the name. Think this might have been it. Wiki Link I haven't played a sub game as good as that since, except maybe the somewhat buggy Silent Hunter 4. And version 5 is visually stunning has a DRM line I won't cross.
-
I'm having problems identifying what combination of joints would work best for this. Think of the undercarriage of a bomber. The wheel spins around and fixed to two 'rods', Rod a - A shock absorber that goes up/down Rob b - Fixed shaft (the long diagonal) that attaches to the aircraft and wheel. I'm not sure how I should be building this. *scratches head*
-
mass looks a little light. Been a while since I played with the vehicle physics, I wrote a little program to adjust those settings as you drive and typically good results for a vehicle with mass set to 11, was the damper at one half the constant...or the other way around. I should really check. The mass and springs work against gravity which by default is set to 20.0 and not 9.8. So try upping the mass of the vehicle. Actually I have a physics question myself, I'll post that in another thread.
-
GEOWEPS - Gratuitous end-of-week post of screen-shots
Flexman commented on Flexman's blog entry in CombatHelo Blog (RSS Import)
The airbase is new and will evolve over a few weeks. Some of the buildings come from a Dexsoft Industrial pack with some textures replaced to match the environment. So yeah they are a wip. Well spotted though. I tend not to see the detail in screenshots anymore, that's a danger when you're too close. -
GEOWEPS - Gratuitous end-of-week post of screen-shots
Flexman posted a blog entry in CombatHelo Blog (RSS Import)
Airbase preview at our SimHQ forum. Gluing the airfield into place has been an interesting job, using terrain 'visibility' to cut out terrain chunks and fit it into place. Shindand airfield is used for medical and humanitarian flights, it's currently VFR only and no lighting system. We might modernise it a little for our scenario. Most NATO flights will come and go from here. A node system for AI aircraft to follow the taxiways and tank-off/land will be added. Multiplayer options starting to appear. The base sat-dish serving as network startup/shutdown. I'm using a red light on the dish to indicate offline and blueish-green to indicate connected status. We're using the tried and tested Raknet library, it's the only one I have experience with and quite reliable. These screens are from my forest test area and for testing purposes only. Command tent (that hanging light, I stole from an underground bunker). This is a spacious area where you'll find the mission terminal, chalkboard (scores/stats) and overhead projector display. Reality check. These command and briefing tents are normally enclosed/air conditioned and inflated. But in homage to older 90s sims we're using this. It's roomy and allows quick access. MMOs typically have overscale interiors/doorways to ease player mobility. This week allowed me to finish off the missing elements of the arming procedure. Loading rockets into zones and building the weapons page inventory. I did run into a slight discrepancy. As I allow each pod to be loaded with 3 different kinds of ammo, in the Apache you can only select 5 zones. I was torn between giving more flexibility to the player and keeping it simple or hardwiring 5 zones and cross-linking zones. For now I'm going to let the players have the extra zone and bump the additional level of realism to a post release update. Source -
I'm excited by the idea of having pre-compiled road data but maybe if it's going to be binary it should be saved as a "roadmap.bin" file with the SBX just containing the filename of the data. Saving binary data in the SBX is asking for trouble. Opening the SBX in a text editor is handy for quick search/replace changes for example, and binary data in the file is just going to kill that. And isn't it possible that the binary data might appear as an EOF end of file marker or some such? Am I still living in the 20th century? (I used to write COBOL). Anyway, veg data is binary and saved externally, road data should be too IMO. It's a cool feature to have.
-
Ditto, I'm using the LE 2D font drawing too.
-
Upgrade 2.32 - let the fun begin
Flexman commented on Flexman's blog entry in CombatHelo Blog (RSS Import)
I can't get the r2 update to download either. I'm using the one that the alternative Updater pulled down. The day-night cycle was one I quickly made. Here's the setup I ripped. It's a pivot, a directional light (not compatible with existing directional lights so it's vital to delete/free any directional lights in the scene after loading). And a Corona to represent the visible sun. Here's a mish mash from what I used. Field sunlight:TDirectionalLight; Field sunpivot:TPivot; Field suncorona:TCorona; ... ... SetWorld(Self.world) ; Self.sunpivot = CreatePivot() ; Self.sunlight = CreateDirectionalLight() ; Self.sunlight.SetPosition(Vec3(0, 0, 0)) Self.sunlight.SetParent(Self.sunpivot, 0) ; SetWorld(Self.framewerk.background.world) ; suncorona = CreateCorona(Self.sunpivot) ; suncorona.SetPosition(Vec3(0, 0, -10)) ; suncorona.Paint(LoadMaterial("abstract::Flare1.mat")) ; SetCoronaRadius(suncorona, 10, 20) ; SetWorld(Self.world) ; Self.sunlight.SetShadowMode(SHADOW_DYNAMIC) ; ... ... ' EXCERPT OF ENVIRONMENTAL FUNCTION TO SET TIMEOFDAY ' WORK OUT YOU NEW RGB COLOURS BASED ON TIME/SEASON/LOOKUP/WHATEVER ' ' SET COLOUR WITH NEW COLOURS USING WHATEVER MEANS ' Self.scene.sunlight.SetColor(newSunColor) ; SetWorld(scene.framewerk.background.world); If scene.framewerk.renderer.skybox scene.framewerk.renderer.skybox.SetColor(newSkyColor); Else scene.framewerk.renderer.backgroundcolor = newSkyColor.Times(Vec4(0.7, 0.6, 1.8)) ; End If SetWorld scene.framewerk.Main.world scene.framewerk.renderer.fogcolor = newFogColor.Times(Vec4(1.0, 1.2, 1.4, 0.8)) ; scene.sunpivot.SetRotation(Vec3(270 + (CurrentTime * 15), 120, 10)) And you can improve it by hiding lights as they pass by the horizon, increasing blue ambient at night. I don't know what Josh did for his. The corona above doesn't work too well in 2.32. -
My wife reminds me that it takes typically two weeks after each engine upgrade to get things working as intended. There's the odd "caps sensitive" issue in some of the LUA source. And a quick change of fw.Main to fw.main in Renderer to get ll the helo/sky scripts working. Rebuilding the lua-gluefunctions and making sure not residue from the previous version was causing problems. All that's left is handling changes of appearance and shaders....and re-serialising all of the 3D work. Performance is fantastic almost doubling frame-rates in our vegetation heavy scenes. The vegetation rewrite has been well worth the effort, with collisions and lighting changes. More varied lighting does a lot to reduce the uniform appearance at range. At least I hope the lighting variations are intentional and not some shader problem. The evening skies came out purple in the new version for some reason, now I really like this colour. It reminded me right away of the . Nailed the colour palette. The downside is the need to re-export all the 3D work. The cockpit simply doesn't work anymore except for a couple of buttons. Interestingly the weapon arming only 50% works too, that uses linepicks also. And the upfront controller material has a normal map smeared over it. I'll have to look at the materials for these, make sure it's not using one. And the occlusion culling is a little problematic. Half of the cockpit vanishes at certain angles and the helipad and radio towers vanish, and when they do other objects tend to go with them. Those are typically large objects, the helipad is often positioned so it intersects the terrain. It's all very strange and interesting doing these updates I'm hoping a lot of problems are just down to the need to fix up the 3D assets. Some behaviours have changed, Coronas, I used as hazard lights are so dim they are hard to see. Also the sun as represented by a Corona, now seems to have been flung from the heavens and lets you 'walk' around it. But is still rendered in the background world. In the mean-time while I go through those assets I'll continue work on the current 'stable' build. I've added config options to set the server and port address with an 'auto join' flag to start the client mode after game load. The 'radar' dish (pictured above) is another interactive object that gives access to multiplayer options. Start Server / Client Connect and an as yet unimplemented address-book. I'd like to thank AndyGFX for his posts on migration issues past and present that helped enormously, and also Macklebee, Red Ocktober and others that have also been posting their issues and solutions. Source
-
Yeah it depends. Stuttering from asset loading can annoy so I tend to do those things in game moments where it's not noticeable or going to be a problem. Don't think there's any hard and fast rules.
-
DAZ3D models are prevented from being used in games by the EULA. With new tools and a store aimed at game developers, it opens the way for some of the models to be used in games. Worth investigating. http://forum.daz3d.com/viewtopic.php?t=139026&trid=972675403
-
Formally announcing the foundation of the legal entity Tricubic Studios Ltd. developers of Combat Helo, associated content and iPhone/iPad games / applications. This doesn't change very much, it grants us a recognised identity for trading, taxation and investment. Plus we get a chance to develop an insipid company website. We plan to have our first mobile platform release ready for the summer. More details on that in a few weeks. Blog updates will continue at this location. Source
-
I ended up making a GameFont class as a wrapper for the 2D font drawing. Once you change from the default font there's no obvious way to get it back. I don't think your missing anything.
-
I'd be tempted to call it "Groundwerks" as you're starting from the ground up but you wanted a smart name. It's all very interesting. I like the idea of having cells paged in if it didn't cause too much stuttering. Microsoft FSX did loading and preparing terrain cells in another thread and every alternate frame to spread the load. This doesn't seem like an easy task but I'll be following what you do with it. There are other possible issues to resolve too, physics, world size and floating point error. Camera relative rendering would go a long way to fix juddering I think but I don't know enough about the LE internals to even guess at how you could make that work. Just Cause 2 uses 64 bit floats for all positional data to deal with that problem. There's a feature on it somewhere I'll try and locate. But kudos to your approach. I hope it can be made to work. Thumbs up here.
-
Environment, weather, day cycles, iPhones, everything.
Flexman commented on Flexman's blog entry in CombatHelo Blog (RSS Import)
Pity it's all brown, the sky colours are quite good between 9am and 3pm, if I can get the colour look-up reasonably ok then I'd be happier with the result. Talking about interface, I just want to share something. One colour blind gamer told me they found using games which use colour highlighting in menus difficult to see. So the simple menu design came out of that, using lines to point to active menu portions where needed and connect the dots to draw the eye to tool-tips. Which if you have a 4 foot wide screen can be quite some distance away; some of our potential customers have three to five screens. Some graphic element or motion (animation) is usually enough to accommodate gamers with mild forms of visual impairment. You see this employed in many console games. I didn't think much about wobbly text in Wii games until recently. It improves accessibility as well as appearing to add production value. Simple things become inclusive. -
Environment, weather, day cycles, iPhones, everything.
Flexman posted a blog entry in CombatHelo Blog (RSS Import)
It's not going to win any awards for realism but we have a rudimentary ENV environment class that handles time-of-day ticking and updating scene elements accordingly. Lighting, colouring, fog, sun position. Currently it's using computed light values which renders lovely post apocalyptic scenes, the colours are terrible IMO, looks like a nuke's gone off. A lookup table will be better and an exercise I'll leave for later. Also I added some data structures for moving weather zones around the map. These are trigger zones for adjusting fog density as you penetrate. To be used for any spot environmental effects we want to add, dust-storms, rain. Not clear how best to add the gradient data, the old Combat Helo code used a tiny 64x64 bmp. Can't seem to find the graphic I used. In the remote chance I get to implement "Megaparticles" (looks around for Shader X book) the skies would benefit from 3D looking clouds. Value vs. performance. Helicopters on our battlefield won't be spending much time at altitude and we're not a fighter sim. We can manage some rudimentary clouds but I'd avoid using particles. Fill rate costs are not worth it. Which leaves billboarding and textured planes which are cheap to render. iPhone development picked up a pace. With access to my big box of assets, Dormouse (lead dev on that project) was showing me how to fly a Sophwith Camel around with nice springy 3D person camera moves and the base skybox I just made for CombatHelo. Nice little exercise to explore what we can do with Unity iPhone. Some rudimentary shaders, OpenGL and javascript. From what I've been seeing, it's not that far removed from LUA scripting in Leadwerks although I find the way Leadwerks interacts with entities more intuitive. Dave, part man-part frame-buffer, tackled craters and we had the problem of blending them with the terrain, especially when we have massive z-buffer artifacts with co-planer polys near the outer-regions of the map. Leadwerks nice built-in library of shaders proivded the answer. Using a terrain hugging vertex shader, the crater morphs to fit, and the frag shader does a reasonable job of blending in the base texture to the terrain. And we have a new concrete bridge for Herat. The region map has been a work in progress for close to three months now. All the compounds, village buildings, structures number approx 502 with the airbase and the city of Herat yet to complete. It's a massive region on foot, and takes a while to fly across. Navigation is a bit of a problem, I hope to fix that with a pop-up map if I can work out how to blend the different map layers from the terrain buffers to make something readable. Otherwise it's going to have to be another pre-loaded DDS texture with enough resolution to zoom in. Here's more of my least favourite colour in games. Brown. Source -
Well I don't know if this is of much help. The simplified hierarchy is as follows: Helicopter > Rail > Pivot > Missile There's nothing unusual in how I parent these. I don't apply any scaling or transformation. Objects are created in code and all 3D objects are exported to the same scale. The only different between these two images is what I parent the missile to. Correct when on a pivot, incorrect to the rail. The rail is a separate object that is parented to a natural child of the Helicopter model. *shrug* not a clue what's going on here but pivot works for me so I'm happy.
-
I sometimes get some strange effects parenting, scales of objects changing, uncommanded orientation. So if I need to parent anything I'll attach it to a pivot then Move the entity into position. FWIW here's an example of how I add missiles to rails on an aircraft. HellfireEntity[NextRail].SetParent(Self.PylonPivot, 0) ; HellfireEntity[NextRail].Move(RailOffset[NextRail], 0) ; Where RailOffset[] is an array of Vec3 defining offsets of missile mount locations on the rail. Not saying don't parent, just that sometimes it can yield unexpected results. It's also handy.
-
Well to explain a little I'm building an environmental system to control dynamic weather. And I wanted to keep it simple by taking the lua Atmosphere entity and over time pushing different parameters to it. Accessing it through the framework was causing exception errors as the skybox was not available (=null). This turns out not to be so strange, as I'd removed it in the editor You're code snippets I'm familiar with, I used them to learn and setup scripting at the start of the year for which I am grateful. Sorry if I come across as being a numbnuts at times. User at fault :/
-
I have a question about this. In C++ or bmax, how do you access the properties of the "environment_atmosphere" object? If you wanted to change the fogcolor, or skymaterial for example? And sorry for re-spawning a fairly old thread but it seemed a relevant question and searching didn't yield any clues.
-
Thanks gentlemen for both interesting suggestions. Anything that's co-planer is out of the question you get a lot of zbuffer issues around the outer regions of the map. Lot of flickering around the base. We did find a compromise that works quite well. Using mesh_contor.vert with mesh_diffuse_alphatest_terrainnormals_terraincolor.frag. It blends the base reasonably well and fits it to the terrain without much flicker. Adding some rocks and other relief debris around it is a good idea. Thanks all.
-
Thanks for the reply Aggror, good to know there are no issues.
-
I was wondering if anyone had any ideas on how to blend walls of an impact crater against different terrain textures. Alpha test/blending doesn't work so well as you can see 'under' the crater mesh. Using the vertex shader to contour it to the terrain works fine (below used as "mesh_contour.vert") #define LW_DIFFUSE texture0 #define LW_UPNORMALS #define LW_MESHLAYER Include "mesh.vert" It's the texture blending that's got me a bit stumped. Any suggestions folks?