Jump to content

Gonan

Members
  • Posts

    185
  • Joined

  • Last visited

Posts posted by Gonan

  1. Start by creating a general map loading function, use it where ever you load a map, add logic to that function to detect if a uniquemodel file exists for that map. If it doesn't load the map, create a dummy progress bar, then create a file of the uniquemodels currently loaded. Animate the progress bar. Next time the function is called for that map a uniquemodels file will exist, get all the entities loaded, counts the number of unique models, use this when animating a progress bar during this loading stage. The model list file could use the name of the map + "uniquemodels" . Once written the whole process could be automatic for future projects.

  2. if you can draw, paint, sculpt, and what you produce is realistic, and is easily recognizable as the original object, then you have an artistic gift, and you could become a modeler.

    if you don't have these skills you can create "programmer models" , which are only good for testing game ideas, once its considered worth pursuing, you might decide to invest in purchasing models or a modeler.

    Even without the artistic skill, you may be able to create a good quality model, but it will take such a long time, that you wont be able to hold a modeler position, as no one will want to pay you to produce a model, when other modelers can produce several, to a good standard.

    I'm artistic more by trial and error, so producing something takes ages, and it looks ••••.

    Programmers can have a variety of skills, Most programmers will break a problem down into smaller steps that can be put back together to solve the problem. Two main schools procedural and object orientated. Once you learn one its hard to switch to the other, as you think about the problem in different ways.

    There are different programmer roles too. Application programmer, Systems programmer, software engineer, web developer.

    Different platforms , mobile, pc, console, mainframe, cloud.

    Different languages, compilers , shaders, assemblers, instruction sets, operating systems, databases, encoding eg, ascii, ebcedic. Big/little endian. 32/64 addressing. Reentrant programming, services, supervisor, device drivers.

    Games programming, where you are wondering around a 3D world, requires some special features, the main one is the main loop of the game needs to be able to complete a cycle in a limited amount of time, if your code takes 0.033 seconds you can only run at 30 frames per second. You need to keep the frame rate smooth, once the game is running, you can't have code suddenly taking longer, as it will appear jerky.

    All these things may seem daunting to someone starting out. But a new programmer will normally start on simple tasks, on one platform, no speed requirement. Learning to use standard routines, learning structured programming, or object orientated programming. Code reading with colleagues. After a couple of years, you may have covered files, relational databases, sql, sorts, standard utilities, debugging, tuning.

    So now you should know if programming suits you. If you are still eager to start game programming, you could try using a game engine like leadwerks, you need to decide if you want to study c++ or jump in with lua. If you already covered c++ and liked it chose it.

    • Like 1
  3. Create a new multiplayer project and the following files show up as Error: Failed to load after connecting to a new server on the debug log.  4.6 Leadwerks beta. Windows 10.

    …/Materials/HUD/crosshair.tex

    …/Materials/HUD/use.tex

    …/Materials/HUD/blood1.tex

    …/Materials/HUD/blood2.tex

    …/Materials/HUD/blood3.tex

    …/Materials/HUD/blood4.tex

    …/Sound/Player/flashlight_02_on.wav

    …/Sound/Impact/body_punch_03.wav

    …/Sound/Impact/body_punch_04.wav

    …/Sound/Player/pickupammo.wav

    …/Sound/Footsteps/Concrete/step1.wav

    …/Sound/Footsteps/Concrete/step2.wav

    …/Sound/Footsteps/Concrete/step3.wav

    …/Sound/Footsteps/Concrete/step4.wav

    …/Sound/Footsteps/Concrete/jump.wav

     

    These files do not exist in the C:\Program Files (x86)\Steam\SteamApps\common\Leadwerks Game Engine\Templates\    Common or Multiplayer Game folders.  But they can all be found in the First-Person Shooter folders.

     

  4. I saw the Google Stadia announcement, cloud gaming, and its running on Linux, with Vulcan graphics, Havok. They seem to be talking about 2019 launch. Do you think this will be a game changer, will it make Linux more popular, and require more devs to be familiar with using a Linux platform?

  5. Over a period of time, these forums will collect lots of data. That data may remain relevant and be useful, or irrelevant and obscure relevant data. If nothing is done the irrelevant data will be more prevalent than the relevant. Thus making forums less useful to users. A knowledge management solution can help, but it needs some sort of data maintenance where user feedback keeps useful items, and relegates unhelpful items.

    Have you considered a knowledge management solution?

  6. Hi, I was wondering if anyone had combined animation sequences, with selecting bones to become controlled by ragdoll physics, as the character sustains injuries to arms, legs body and head. The existing character controller, simply reduces total health, and the dyeing sequence is selected when it drops below 0. However none of the injuries are fedback to the viewer, which would make fighting zombies more interesting.

  7. I imagine that having an assignable icon to a pivot and let it be displayed in the leadwerks editor, and have the option to hide it in the runtime, or debug would be a nice feature, making spawn points, ammo supply, points that effect gameplay. The old FarCry map editor used icons to mark various items added to maps and it did make it easier to tweak the gameplay visually.

    • Upvote 1
  8. From your replies so far,

    changing the world:SetLightQuality does not turn off the lights in the fps sample, but you can't see any difference to the quality.

    My next question is where are you calling SetLightQuality in your code, its not in each pass of the main loop is it? If it is hold your last set quality value in your own variable, and if it changes then call world:SetLightQuality, with the new value, just the once. I'm thinking is it possible that the update and render calls rely on a state of some internal workings after setting the light quality, if this is true, ie world update is affected by a render state change the lights won't display until the next pass of the main loop.

  9. 1 hour ago, Josh said:

    @Gonan I'm going to modify the way updating works to solve your problem. I think the danger of missing out on a script update is less than the danger of overwriting your modified files, and the API is quite stable so I think script updates are really optional at this point.

    Thanks Josh, looking forward to trying it out. Are you allowing updaters to see the updates leadwerks have held back due to user updated conflicts. So that they could choose to integrate them themselves. As you said LE 4 api is pretty stable, so there should not be too many. Hopefully I can use a backup of a working project, and then reapply the new version of the project update.

    LE 5 is going to be the start of a new set of changes, will the same update process apply?

     

    • Upvote 1
  10. I agree with Josh, he must make decisions on the direction that leadwerks needs to follow, ensuring his business meets the needs of its users.

     

    My original post also stands, and is not meant to conflict with Josh's plans. I was asking about how others managed their source code, and if there was a standard, or best practice to follow when setting up a new project. Having a tutorial on minimising the effort required to keep projects up-to-date.

    Its not about main.lua, that was used as an example. What I really need is how to separate my user code from the leadwerks supplied code, so that it can be reintegrated after updating the project. I recently updated a project and was told over 400 files had been updated. Of couse the program no longer works, and would need a lot of effort to go back and reapply my code changes, just to get the program working again. That's why I call it a chore, as I have had to redo this work after each update.

    I am asking the community if they have developed a standard approach to this problem. I am enthusiastic about leadwerks and the new features, but adding them into existing projects is too big a hurdle to cross knowing that I would need to repeat the process every few months. Imagine you had several projects written over the years, you would spend ever increasing time managing your codebase, and less time creating new work. As Josh says this is a user business decision, in how to manage what is an ever increasing legacy user codebase.

    So please comment on your best practice, and how you minimise the rework required after project updates.

  11. way back in the 80s when I was an IBM systems programmer, user exits were provided, which simply returned, by default, but would allow user supplied code to be substituted. Obviously this is done at each significant point in the supplied code.

    eg.

    main;

    //initialise supplied code and setup internal_memory

    up=addr(internal_memory)

    call userexit01(up)

    //start up

    call userexit02(up)

    // main loop

    . call userexit03(up)

    // main loop end

    call userexit04(up)

    //end

    as user supplied code was changing a supplied module that simply returned, it never needed changing during a version change.

    Also we never had to change main.

    other Leadwerks users may have a more modern way of doing this.

    An alternative is a optional user folder where modified versions of supplied code override the standard implementation. Leadwerks updates would not update the user folders. This would require some sort of path search , looking in the user folder before the existing folders, to be implemented in Leadwerks.

  12. I would like to see how you should create your own source code in LUA, by starting with a new project, and what you should do to implement your changes to the existing starter code, so that you are never impacted by a new version, or project update.

    Its very tempting to start tweaking the starter code, and save it back overwriting the original. For instance making changes to main.lua, means any updates to the main.lua made by a new leadwerks update, when applied to the project, with the project update facility, will mean remaking those changes by looking in the .bak files.

    keeping a project uptodate with the latest version can quickly become a chore, especially if you are using the beta to get the latest features and fixes.

    Managing this aspect of using leadwerks in a long running project, is my biggest negative experience, all I would need is a standard to follow for making user changes, that would eliminate or minimise the impact of this issue.

    I'm sure someone else out there has found a way to avoid this from impacting their development.

    • Upvote 1
  13. I looked at the creation dates on the folders and it does look like they were created as a project new with the create subfolder option unchecked, making sense as to an explanation for their existence.

    This was under version 3.3, and I was experimenting with the option, but have not used it in any real project. I should do some house keeping, after I take a backup copy.

  14. when reading an update to a long article, for instance the kickstarter tutorial, it would be nice to have a bottom button to scroll down to the last entry. This is much more useful when using a smart phone, rather than a pc, where you can use a scroll bar.

×
×
  • Create New...