-
Posts
42 -
Joined
-
Last visited
Profile Information
-
Location
Philadelphia, US
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
Foolish's Achievements
Newbie (1/14)
2
Reputation
-
I have used older versions of Torque. You can get something up and running quickly, especially multiplayer, but than you can hit a pretty solid wall. Bugs can be extremely difficult to troubleshoot. And the forums needed cleaned out at the time. Still, the advantage of having your multiplayer component very accessible is a big win. As an amateur/hobbyist programmer, I feel LE gives me lot of freedome, and though I hit walls, I steadliy overcome them. It just feels like more things are possible in LE.
-
Joh, So what approach did you decide on for your lasers?
-
I'll be the guy who endorses Blitzmax then. If you come from a BASIC background, and hate pointers, addressof, and you aren't going pro, then you might want to look at Blitzmax with the BlIDE IDE.
-
Sure amigo. Thanks for the tip.
-
After days of experimenting, here is the magic order of operations that allowed me to have smoother movement with a "drifting third person camera" without requiring a pivot. 'Main loop While Not KeyHit(KEY_ESCAPE) If KeyHit(KEY_ESCAPE) Exit If AppTerminate() Exit player.Update() 'captures my keyboard input, applies forces to the fighter. fw.Update() fw.Render() PositionEntity(fw.Main.camera, EntityPosition(player.model)) RotateEntity(fw.Main.camera, EntityRotation(player.model)) MoveEntity(fw.Main.camera, Vec3(0, 1, - 2.5)) Flip Wend
-
I think you nailed it. Parenting to the model will always be shaky. Parenting to a pivot is the way to go - at least when using Framework.
-
I still get the shaky camera. I have minimized my loop to just what causes the shaky camera. I had the other code in there before to demonstrate that using the pivot allowed smooth movement. The following code excerpt, which maneuvers the camera is what creates the jerky results. 'SetStats(2) EntityParent(fw.Main.camera, Null) 'Main loop While Not KeyHit(KEY_ESCAPE) DebugPhysics KeyDown(KEY_P) player.Update() PositionEntity(fw.Main.camera, EntityPosition(player.model)) RotateEntity(fw.Main.camera, EntityRotation(player.model)) MoveEntity(fw.Main.camera, Vec3(0, 1, - 2.5)) fw.update() fw.Render() Flip Wend
-
I wish it was that simple. That second call is left over from troubleshooting this. Removing "updateframework" has no impact at all.
-
I can make this example work. Thanks. My problem with Framework now goes back to an earlier post related to camera movement. Moving the camera is code creates very jerky movement unless I use a pivot. I made a brief video showing the problem here: Jerky Camera Using Framework I only get this using framework. My relevant code is as follows: Framework leadwerks.engine 'Create an OpenGL graphics window Import "Framework.bmx" AppTitle = "Working Title" Const WIDTH = 1024 Const HEIGHT = 768 Graphics WIDTH, HEIGHT Const FPSVIEW = 1 Const CHASEVIEW = 2 Global ViewType:Int = CHASEVIEW 'Allows the engine to find files and load files from zip packages RegisterAbstractPath AppDir fw:TFramework = TFramework.Create() If Not fw RuntimeError "Failed to initialize engine" End If PositionEntity fw.Main.camera, Vec3(0, 10, - 4) CameraClearColor(fw.Main.camera, Vec4(0, 0, 0, 1)) CameraRange(fw.Main.camera, 0.1, 3000) CameraClearMode(fw.Main.camera, BUFFER_DEPTH) 'add a light light:TLight = CreateDirectionalLight() RotateEntity light, Vec3(45, 45, 0) 'load the scene scene:TEntity = LoadScene("abstract::scene.sbx") If Not scene RuntimeError "Failed to load scene" 'set collisions Collisions(1, 1, True) Global player:TTIEF player = New TTIEF player.SetPosition (0, 50, - 2000) LoadTestTower() SetSkybox(LoadMaterial("abstract::skybox.mat")) HideMouse MoveMouse GraphicsWidth() / 2, GraphicsHeight() / 2 'SetStats(2) 'Main loop While Not KeyHit(KEY_ESCAPE) DebugPhysics KeyDown(KEY_P) If KeyDown(KEY_S) Then SaveBuffer(gbuffer, "screenshot.jpg") If KeyDown(KEY_F1) Then ViewType = FPSVIEW If KeyDown(KEY_F2) Then ViewType = CHASEVIEW UpdateFramework() player.Update() 'Position Camera If ViewType = CHASEVIEW 'no pivot EntityParent(fw.Main.camera, Null) PositionEntity(fw.Main.camera, EntityPosition(player.model)) RotateEntity(fw.Main.camera, EntityRotation(player.model)) MoveEntity(fw.Main.camera, Vec3(0, 5, - 10)) Else 'using pivot EntityParent(fw.Main.camera, player.camPivot) PositionEntity(fw.Main.camera, EntityPosition(player.camPivot)) End If fw.update() fw.Render() If ViewType = FPSVIEW Then DrawText "View Type: Using Pivot", 0, 80 Else DrawText "View Type: Rotating Cam", 0, 80 End If Flip Wend I have also played around with resizing the model in case its a rounding error with floats, but that didn't seem to help. Not moving the camera keeps everything smooth as well. Any thoughts?
-
Joh, do you think you might have a chance to look at this? Thanks.
-
Thanks for your time. Framework leadwerks.engine 'Create an OpenGL graphics window Graphics 800, 600 'Allows the engine to find files and load files from zip packages RegisterAbstractPath AppDir 'Create a world If Not CreateWorld() RuntimeError "Failed to create world." 'Create a camera cam:TCamera = CreateCamera() CameraClearColor(cam, Vec4(0, 0, 0, 1)) RotateEntity(cam, Vec3(35, 0, 0)) MoveEntity cam, Vec3(0, 2, - 2) buffer:TBuffer = CreateBuffer(800, 600, BUFFER_COLOR0 | BUFFER_DEPTH | BUFFER_NORMAL) DebugLights(True) model:TModel = LoadModel("abstract::fixture_cagelight.gmf") If Not model RuntimeError "Failed to load cagelight" 'add a pointlight plight:TLight = CreatePointLight(4, model) SetShadowSoftness(plight, 2) SetShadowmapSize(plight, 512) SetLightRange(plight, 2) plight_material:TMaterial = CreateMaterial() SetMaterialTexture(plight_material, LoadTexture("abstract::cagebulb.dds")) PaintEntity(plight, plight_material) AmbientLight Vec3(1) PositionEntity model, Vec3(0, 2, 0) 'Main loop While Not KeyHit(KEY_ESCAPE) TurnEntity model, Vec3(0, 0.5, 0) 'Update timing, physics, and other miscellaneous updates UpdateWorld 'Draw the world SetBuffer(buffer) RenderWorld 'Swap the graphics buffers so we can see what we drew SetBuffer(BackBuffer()) RenderLights(buffer) Flip Wend The screenshot shows what I'm getting. Not quite the bright light of the tunnel demo. Thanks again.
-
I am still stuck trying to reproduce a simple use of the GLOW shader working such as the cagelight in the tunnels example. Any BMAXers out there have a working example of something like this?
-
Like many hobbyist developers, I was looking for the biggest bang for the buck. So I experimented with every engine out there that I could find. One of the most common problems I found regardless of the engine is the challenge associated with the content pipeline. Some engines use proprietary formats like Torque's DTS, or DIF, and others use common, but dreadfully inefficient formats like Microsoft's .x format. Leadwerks uses its .gmf or Game Model Format. And there in was my first obstacle. My first time around with Leadwerks, I was using Milkshape and Ultimate Unwrap Pro to create GMF files. At the time, I found this pathway to be pretty unreliable. It wasnt' until I started using 3D MAX 2009 with the alternative Leadwerks Exporter that I was able to consistently and reliable export and import into the engine. My success here was really helped by following the YouTube video and using the exporter found here: Arbuz' 2.2 Exporter and following the youtube tutorial found here: Visual Knights tutorial I think getting a model into an engine may always require some tweeking, but these resources made it much less cumbersome. If you are using physics, then the next troublesome area will be creating the .phy file. For complex shapes, the exporter doesn't do too well on its own. In these cases, you need to export the file to an .obj file and then use to the obj2phy utility to create the physics body. Remember that the .phy file needs to be the same name as the gmf file. So for me, I had the following: tief_tief.gmf (My TIE Fighter gmf file) tief_tief.phy (the physics file I created by saving my model to .obj and then using the obj2phy utility. When I use the exporter, I also end up with a set of mat files. Again, following that video tutorial will show you how to do this reliably. After a few iterations, it becomes second nature to go back into MAX, make some adjustments such as scaling to my model ,and then re-export to GMF. Good luck. Good luck.
-
I have noticed the usefulness of others blogs on this site, and thought that my efforts to learn and utilize this great leadwerks engine might eventually be beneficial to others getting off the ground. First and foremost, I am a decidedly avid fan of Blitzmax. At work, we use C# and Java which is great for professional work. I run a software company for my day job. But I am just a hobbyist at home. This means, I have no grandiose designs for the next great MMO, but rather just love playing around with this stuff. Historically, I have programmed game projects in everything from C and SDL, Blitzmax, Torque with Torwue script, etc., etc, and others. From a language perspective, I have used C, C++, VB6, and Java. There is no doubt that it you want to be a professional game programmer, you should go the C++ route. Howvever, if you are new or want the quickest bang for the buck, Blitzmax is fabulous, especially when used with the BlIDE IDE. I have been a LE owner for a couple of years. I recently came back to LE largely because of its support for Blitzmax which I love and the ease of which LE incorporates physics. I have completed 2D projects in Blitzmax and produced some Team Death match work in Torque, but it was frustrating and not that satisfactory. You may have noticed that I added my tutorial source code for my recent re-introduction to the LE engine to the code section. I hope this helps some folks get off the ground with it. I would love to see us Blitzmaxer's stick together and be more active on the forums. I think this engine is the real Max3D we have been waiting for. I'll be posting about my efforts to learn the engine and create an acceptable first project. To begin with, I am trying to learn the various aspects of the engine by recreating the death star battle from the original Star Wars.