Jump to content


  • Content Count

  • Joined

  • Last visited

Everything posted by aiaf

  1. aiaf

    Coroutine Sequences

    will be something similar to this in c++?
  2. 2111 means: option index 2 depth 1 parent 11 323111 means: option index 3 depth 2 parent 3111 This way the key is unique and i have a variable depth so i can access things in the above table. At begin we are at ["11"] i just draw the corresponding choices table: "Print command", "Print command input", "Select operation", "Input command data", "Clear command", "Execute command" Player click Select operation (that is index "3111"), draw the choices if they exits and execute the corresponding func. dialogManager.goto("3111") Its generic, works for any depth, single inconvenient is the key can get pretty long for higher depth. I could hide that from the user, by using a file with tab as depth specifier that after it generates the file as above. Ill send you the code when i come back to my computer.
  3. aiaf


    Te gui is missing a few examples but its really easy to use and very flexible. https://www.leadwerks.com/learn?page=API-Reference_Object_Widget_Button Btw the gui system will be available to turbo in a form similar to what we have now ?
  4. Load your dialogs from lua files(a table) and have them rendered.You need something generic for all kinds of dialogs and depths. We have something like this in the forth project using leadwerks gui. The choices table tells the next sub dialogs, and each dialog line has a function handler that gets called when option was selected. TerminalDialog = { ["11"] = { speaker = "Monolith", text = "Terminal active. Awaiting commands: ", navButtonType = "End Dialog", choices = {"Print command", "Print command input", "Select operation", "Input command data", "Clear command", "Execute command"}, func = UpdateTerminalDialogData}, ["1111"] = { speaker = "Monolith", text = "Monolith command:\n\n N " .. mNorthInput .. "\n S " .. mSouthInput .. "\n E " .. mEastInput .. "\n W " .. mWestInput .. "\n U " .. mUpInput .. "\n D " .. mDownInput, navButtonType = "End Dialog", choices = {}, func = nil}, ["2111"] = { speaker = "Monolith", text = "Current databanks content:\n\n N " .. northInput .. "\n S " .. southInput .. "\n E " .. eastInput .. "\n W " .. westInput .. "\n U " .. upInput .. "\n D " .. downInput, navButtonType = "End Dialog", choices = {}, func = nil}, ["3111"] = { speaker = "Monolith", text = "Pick type of operation performed when pushing data:", navButtonType = "End Dialog", choices = {"Concatenation", "Addition", "Substraction", "Multiplication"}, func = nil}, ["123111"] = { speaker = "Monolith", text = "Concatenation active", navButtonType = "End Dialog", choices = {}, func = function() selectedOperation = 0 end}, ["223111"] = { speaker = "Monolith", text = "Addition active", navButtonType = "End Dialog", choices = {}, func = function() selectedOperation = 1 end}, ["323111"] = { speaker = "Monolith", text = "Substraction active", navButtonType = "End Dialog", choices = {}, func = function() selectedOperation = 2 end}, ["423111"] = { speaker = "Monolith", text = "Multiplication active", navButtonType = "End Dialog", choices = {}, func = function() selectedOperation = 3 end}, ["4111"] = { speaker = "Monolith", text = "All data pushed", navButtonType = "End Dialog", choices = {}, func = PushTerminalData}, ["5111"] = { speaker = "Monolith", text = "Databanks cleared", navButtonType = "End Dialog", choices = {}, func = ClearTerminalDatabanks}, ["6111"] = { speaker = "Monolith", text = "Execute command", navButtonType = "End Dialog", choices = {}, func = ExecuteCommand} } Its 2 lua classes Dialog and DialogManager.I can send you the files if you want to have a look. Just trying to give you some ideas.
  5. aiaf


    Duh microsoft, Its mpeg4 , guess you could download the file and play it with vlc , or use a proper browser chrome/firefox
  6. Whatever library you use there should be built with MT or MTd(if you use debug version). https://docs.microsoft.com/en-us/cpp/build/reference/md-mt-ld-use-run-time-library?view=vs-2019
  7. aiaf


    Here is a movie with the latest switch i made, there are 3 pyramids that can be selected like this. The player could open the way to enter the selected pyramid. Im not entirely sure i will do the 3 interior room of the pyramids, i dont know what to put in them at the moment.Maybe is better i stop. I have some problems with the buttons not playing the whole sound, i dont know what happens there. test.mp4
  8. Really good progress.Lots of work. Im close to finish with level01a and i will try to help here.
  9. Have a look at my cmake based project for leadwerks (works linux,windows): https://github.com/aiafrasinei/lep If you still need help with this i can do it.
  10. Occlusion culling means that geometry not inside the view of the camera, will not be drawn, for performance reasons. Is good to think of this when designing your level. But your scene seem simple don't know what the problem could be. I had at some point 800 instanced cubes in a scene, leadwerks has no problem with that.
  11. Necro posting , this just happen to me and its 2019. Was solved by driver upgrade.
  12. LEVEL: [level01a] Dream level 2 PURPOSE: let the player discover 3 VR commands, by telling a story and some quests MAIN GAMEPLAY: exploration, arcade, quests, too long to explain here RESULTS: - discover all 3 VR commands - partially discover cmds - exit the level In future choices here could affect more the "real" game world.The ship AI is already involved in the story. The 3 commands to discover are still to be determined.Initially i wanted to have the activate health station in here, but it doesn't fit anymore.And i think this should be introduced after cube/sphere attack because the level is long and don't want to interrupt too much the attack in the ship.Probably after repair of AI room? You get an electric shock and you go to dream level 2? Also in this level you will get your magic powers. Can you add this to the document, at the moment i don't know where it fits but it's purpose should be clear.
  13. This is good is very detailed. I want to explain better the first VR interaction for further reference: ACTIONS: subsection 1 .Player is introduced to VR press the monolith in center of room..Player is free to figure it out and do anything. Trigger that ends this is when he pressed "Input command data" and talk back to the monolith in center room, subsection 2 Monolith gives the first real command: N1 S1 W0 E0 U0 D0 Skiping here the monolith words are very long. PURPOSE: activate the VR computer EFFECT: monolith in center of room gets activated (a humming sound/some red graphic effect) subsection 3 Monolith is online but the self test failed. "Monolith online. Self test failed. This could be solved by a restart command: \n\n N 1 S 1 E 1 W 1 U 1 D 1" PURPOSE: self test failed, restart the VR computer to pass self test EFFECT: some sound that represent the restart, change color on the active effect of the monolith to green, to signify self test passed subsection 4 Monolith is ok he teaches you how to exit vr and tell you to come back at any time All internal subsystems are go. This is the VR room You can control the ship subsystems from here In cryo room there is a red book describing usual commands The command to exit VR:\n N 0 S 0 E 0 W 0 U 2 D 0\n Come back at any time. PURPOSE: exit VR, teach the player about the VR manual EFFECT: some sound when exit VR This end the first VR interaction Most of the above is implemented here is what is missing: active effect on the monolith when self test failed (redish effect + humming noise and some crackling) active effect on the monolith when all test passed (green effect + humming noise smooth) exit vr sound specific sound when executing a command from the terminal I would like to keep the first interaction simple as it is now, its enough info there and a few VR commands. Change failure results to this: SECTION 4 - Unlock Cryo Room Door  LEVEL: [level03] VR Level 1 PURPOSE: Introduces VR type levels. MAIN GOAL: Player should locate cryo room door unlock controls in VR. FAILURES RESULTS:  Falling: Player resets to start position if fall out of level (it has gaps initially). Health Runs Out: Player passes out and exit VR level forcibly returns to cryo room SUCCESS RESULTS: Player exit VR by using the exit command Second interaction with VR: LEVEL: [level03] VR Level 1 PURPOSE: activate some cryo room systems by VR MAIN GOAL: Player performs VR puzzle that activates the health station in cryo room Player performs VR puzzle that unlocks the cryo room door FAILURES RESULTS:  Falling: Player resets to start position if fall out of level (it has gaps initially). Health Runs Out: Player passes out and returns to cryo room, SUCCESS RESULTS: Both puzzles are performed If he does this 3 times and not activate heal station or some other methos from stabilize health section, game over player dies. Can you see if this can be integrated in a ok way with the stabilize health section ?
  14. aiaf


    Sounds good plan, looking forward to see what you come up with. But let's consider not scrapping cryo room for good, it's nice work there and looking good. I vollunteer to bring back later, with some changes, as another room.
  15. Just do it, in the simple dumb way at first.And solve the problems along the way. For fps you will probably need a binary network protocol.But for initial testing just have server/client use strings (csv or json if you want). Probably using Le steam network could be simpler. Some libs you could use c/c++: Asio, SDL_net, POCO Net, libevent. Also i used go lang a couple of times for the server, simpler.
  16. Now using Leadwerks 4.6.
  17. aiaf


    I tried 4.6.There is still the problem with the platforms in level1 and level1a.Aside from that all seem to work ok. I dont know if its leadwerks or the script to blame. Scripts\Objects\Physics\NoGravityWithPhysics.lua is the script , i tried to fix it but no luck.Maybe you can have a look. Well figure a way to solve that platform script problem. I adapted level 1a to not use anymore the platform script, its ok , its become a bit easier this way. I think we should upgrade to 4.6.Waiting for your input , if ok ill make the commit with the new 4.6 binaries/files
  18. How will it work with custom shaders from the user? Suppose they will need to compile them.
  19. aiaf


    That Kairo game looks awesome. Mine resulted as it is because i was thinking abit about mist. There is also a somewhat main quest that start from the right side of the map (you need to explore all pyramids to find bits of the commands from the VR level).The monolith there is the ship AI and explain this somewhat. I have to signal that better for people to go there. Agree, there are some things on the upper level. After you climb the tower first time. the chief robot opens another way to a pyramid so you can get the last part of the VR command, If you spot this you dont have to climb the tower again. You have to talk to all upper level robots to activate the teleporter.They send you to reactivate the generator on lower level (big cubes on the right).After that the chief robot send you to kill a rogue robot on the lower level.And you are open a hidden way to another robot that will give you spell powers (this is not finished yet). Ill try add some more puzzles. They are a bit different they move slightly.But probably is not enough to notice. Still have to tweak some areas that are too hard. I will try to update to 4.6 again.
  20. aiaf


    I can setup waypoints from code and put them in gworld, but if is a simpler way to do from editor im all ears, do tell. I need the first waypoint to be after the player climbs the tower.
  21. Level01a is about exploration and some story. Story wise you enter the dream world (sleep).At the moment its a about a robot society, but could be anything(fantasy setting etc) is a dream. Then somehow the AI can enter too and try to help you, but also the enemy (spheres ? etc) can be there. For now goal is to present to the player some "AI commands" from level 3. General mechanics: Most robots have some text when clicking on them with info of whats going on. Buttons activate things, or teleports. There are 5 special robots.That give you tasks , but i tried to make it such way that player can have choice and ignore them if they want. You can activate a power generator. Also is the monolith model with represents the AI. One robot will give you the spell powers in this level, that will have effects in the ship. Things to do: Activate health command: You uncover this by visiting each pyramid in the lower level ( 2 pads with one number per pyramid). Other unknown command: You get this if you talk with the 3 AI monoliths , on upper level. You can get there by climbing tower or using a teleport Depending on what path you choose. Not finished , i think it needs more interaction , the level beeing so big. This level is not forgiving on the player (maybe annoying), one mistake and you fall and start again ( waypoints needed ?) Climbing the tower is hard for a new player, but i can do that with ease now. I tried to have a strange level, mystery , dont know if i pull it off, probably not . Tell me what you think. To try level Forth.exe +loadlevel 1a
  22. Ok, good. Yes menu, it's meant to run it once with parameter New Game just when changing level. Then you can run normally without parameters to stay on same level and press Continue.
  23. This code is executed when you run as i described: if System:GetProperty("loadlevel")~= "" then os.remove("gworld") System:Print("test: " .. System:GetProperty("loadlevel")) changenextstate = System:GetProperty("loadlevel") end if FileSystem:GetFileType("gworld") == 0 then gworld:setPlayerLocationId(changenextstate) gworld:setPlayerPosition(0,0,0) gworld:setStartPlayerPosition(0,0,0) gworld:setStartPlayerRotation(0, 0) gworld:addIsland("Principium") gworld:addIsland("Secundus") gconf:getSerializer():save(gworld:getData(), "gworld") end do local _={player={1 ... The code deletes the old file. How this 1 gets in there ? when you run with Forth.exe +loadlevel 3. Should be 3. How exactly do you run Forth and add the command line parameter ? What is the value of changenextstate on your machine ? print that variable before this call: gconf:getSerializer():save(gworld:getData(), "gworld") Put a 3 in that file instead of that 1 and run again , will it load the level 3 ? Sorry for insist but this is annoying , cant be cpu architecture related ... its just a file write.
  • Create New...