Jump to content
  • Advertisement

Fulcrum.013

Member
  • Content Count

    464
  • Joined

  • Last visited

  • Days Won

    3

Fulcrum.013 last won the day on October 27 2018

Fulcrum.013 had the most liked content!

Community Reputation

-61

1 Follower

About Fulcrum.013

  • Rank
    Member

Personal Information

  • Role
    Programmer
  • Interests
    Programming

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Fulcrum.013

    A good 3D math library in C for OpenGL?

    it is 2 options to use DLL - import a separate functions from it and import a interfaces using COM. Both seriously affect perfomance, becouse any call of DLL function is indirect i.e. same as virtual call and can not be inlined. So best way to use it for pluggable modules is to break system to huge closed subsystems that require intermodular calls very rare. For example physic engine into one DLL, render into another DLL and scene into main module. As result you can just export only function from each of dlls and call it once per frame. Internal implementation of functions inside dll can use inlining, clasess and other advantages of C++ for anything that not require a interdll calls.
  2. Fulcrum.013

    A good 3D math library in C for OpenGL?

    I mean that all your compiled code will not exids 100mb. Anything else is a textures meshes and so on data that stored into separate data files, not into executables
  3. Fulcrum.013

    A good 3D math library in C for OpenGL?

    So it have at least 49.9gb in datapack and less than 100 mb in executables/dlls.
  4. Fulcrum.013

    Motion builder global rotations

    To calculate global transformation of child you have to multiply a global transformation of parent by transformation of child that is respective to parent. So 1st prent is always in global basis. production of its tranformation to 2ndgive a global transformation of 2nd. now multiply it to 3rd and you have a global transformation of 3rd. It really works like a stack - for each child you multiply parent global position by its child local transformation then use it to process a childs of it child and so on for whole tree of basises. When some object change a local transformation, its global transformation and global transformations of each subtree of its childs have to be recalculated.
  5. For one hand it is very simple becouse it is 100% pure math. By other hand it is very hard becouse it 100% pure math. Also 3D programming involved into any top-paid fields,like a CAD/CAM/Robotics/Science and so on, not into gamedev only. For example becouse STL is good for about anything for cost that it is best for about nothing. Also STL do not utilize all oportunities of C++17. Especially opportunities that C++ have for container navigation and automatic memory (or better say interdependences) managment. It just provide tools that simulate outdated Simula's GC technology and set of basic containers that simulates pascal-like languages datatypes with close to C efficiency. Becouse other schemes of automatic managment is task dependent (it also main reason why C++ turned to flexible smart pointers from unflexible GC). But nothing prevent to make a self-made containers, smartpointers and other elements that best fit needs of concrete task, or ever to make set of templates that allow to declaratively make a required container/smartointer and so on. Also STL not intended for realtime purposes while most of video games is a soft-realtime software. For example resizeable containers like vector and so on is just nonsence for realtime, becouse absence of required space into preallocated buffer mean that system can not process data with required speed, so it allready crashed regardless is it able or not to enlarge buffer . Ciclyc buffers much better for its purposes, but STL do not have it.
  6. Fulcrum.013

    Roadmap to GameEngine development

    Start by making good infrastructural library, automatic serialization/deserealization and automatic generation of object's proprties editors tools. It will speed up anything else. Also move AI and sounds binding to 5-th or ever 2-nd step. Better to use spheres as broad phase collider, it much faster then OOBB, or ellipsoids that is second fast after spheres and have much better coverage percentage then OOBB. Also it is much simplier to make collision prediction for spheres, that allow put to sleep moving or ever accelerating objects, and exactly calculate time point at witch you need to compute better approach of impact time using more complex collider.
  7. Fulcrum.013

    Game Engine or custom game engine?

    For instance CADs models (assemblies) also much better for animmation, especially for procedural animations, including AI controlled animations, becouse based on kynematics rules instead keyframes (while allow to capture keyframes offline) and also have all physical properties of objects calculated from its geometry, that wery importent for phisics simulation that drive most of non-AI animation on modern games. Of cource much much better than poligons. Anywhere where you want to ask "is spline able to perform same as triangles" just rememver that triangle is a spline of 1st level so have a mininal of possible for splines flexibility. Obviuosly industrial CADs not intended for organics. But NURBS same good for it like for any other geometry and have huge advantage over poligons - spline models can be parametrized . Also CADs offer more powerfull tools that good for many (of cource not for all) cases - 3D scaning of real persons faces to NURBS. Yes of cource it is approximate show, but than accurate engine able to simulate reality than easier to create a magic show just by changing some factors to alter it reality. For example set alternate direction of G vector in some volume to simulate a gravity anomaly, or set bounce factor of ball ower 1 to get it accelerated when it hit a wall, and so on, becouse engine that works close to reality give ability to modify lows of reality, instead to making a separate solution for each object of its reality.
  8. Fulcrum.013

    Game Engine or custom game engine?

    To find a ray intersectoins you don't need to tasselate at all. Yo need to solve intersection equation that cheaper then test rays against all tasselated triangles. For sufaces wich order not exids 2 (spheres cylinfers cones e.t.c) analitical methods work better. For more complexive surfaces Newton method is very fast in case we get a intersection with control mesh for starting approach, and much more faster if we can get a intersection point of other close ray as starting aproach. Using splines in most cases possible to test for intersection a whole mesh solwing only equation that usualy not exids 6th order and have accurate results and normals, instead to solve huge quantity of 1st order equations for each triangle and have only approximated results.
  9. Fulcrum.013

    Game Engine or custom game engine?

    Nobody has promised that it simplier to implement then triangles. Especially in current 2-stage tesselation architecture (on initial de Casteljau algo number of subdivisions determined on vertex position computation stage ). And also splines and other curved surfaces much better and efficient for ray-trasing (that is realy next gen of game realism) then triangles. All CADs have a ray-traced renders for photo-realistic image generation.
  10. Fulcrum.013

    Game Engine or custom game engine?

    Non-rational disallow to match spline with quadrics, so make a big head-pain with modelling of spheres, cylinders, cones, and other quadrics forms from wich human prefer to make his machines and other products.
  11. Fulcrum.013

    Game Engine or custom game engine?

    For instance GL and DX never support splines before. It has support outdated non-rational bezier patches only. Modern GL and DX moved support of pathces from fixed pipeline part to programmable part (tesselation stage) since DX11 and GL 4.5. It extends splines support to about any type of spline. For instance triangle is a rookie (1st order ) spline. And it is main of triangle disadvabtages. For example accurate tangent and bitangent calculated by the way during computation of accurate normal, and it cheaper than transform it. So with splines you not just have less vertices, you just need position and texture coords only as vertex attributes. Tesselation good for rational bezier patches. So any kind of splines that extends rational bezier splines can be rendered using offline pre-tasselation to rational beziers patches. By the way it also good fot many other algos (like subdivision surfaces for example) that utilize similar to spline concepts. Really it much intuitively and productively for design than triangles. Modern CADs already have much better tools than 3DMax etc at least for machinery and architecture, and about any non-natural object. Of cource it require a engeenirs, not a artist to design models productively. For example how many time artist have spent to make models like it using a 3D Max or similar 3D-pinbrush? I has spend no more than one day for actual modeling of pistol and submachine gun and couple days for turret. But im not a 3D atrist at all and not a weaponery engeener. Im just little bit experienced with CADs. Also models good for modern lowpoly demands ever after default pre-tesselation to trangles. For example submachine have ~24k vertices and ~24k triangles that is ok for top LOD. In spline representation it have less than 4k vertices that can be tesselated adaptively to have any LOD. Also removal of expensive holes and so on for making a low-level LODs is very simple operation for CAD that performed by single click, unlike 3D pinbrushes Max. Splines have many optimizations embedded directly to mathematical core. For example ability to optimal tesselation in dependence from surface curvature and so on.
  12. Fulcrum.013

    Game Engine or custom game engine?

    Thay just using huge number of lines into their codebase as a advertisment slogan. In my country at least 90% of startups is just a scam, 9% belive that thay want to do some usefull, but dont know what same exactly they want to invent, 0,9% know what thay want but have any ideas and knowledge how to do what thay want, and only rest have chances to really develop something new. And it can be easily determined. Its 0.1% of startups usualy created by educated professionals, that have strong background into related field, and hire only educated professionals with enought background into related field.
  13. Fulcrum.013

    Game Engine or custom game engine?

    100k lines of c++ code have more chances to summon the devil than chances to work. Really developer qualification inversely proportional to lines of code that he/she needs to write for solve complexive task. Than better programmer able to analize task field than less code he/she needs to write. For example geometrical core of CADs rare exids 20k lines. May be thay mentioned something like it?
  14. Fulcrum.013

    Game Engine or custom game engine?

    For first mainstream engines failed to use a modern hardware abilities. for example it no engines around that support spline-based models, while it significantly improve quality, decreace size of models and have hardware support since DX11 has been introduced over 8 yers ago. And for main gaming != graphics only. It ever more of phisic simulation and game ai/logic than graphic. For example engine, that made from graphics and have based on classical for graphics scene tree of grizmos architrcture, slowing down actual game development and making difficulties with simulations, razer sped up it and solve problems. Instead engine that build around phisic simulation that send objects position to rendering subsystem much better for actual game development. Of cource rendering is impotrant part. But graphics!= "anything that we see on screen". For example animation is not a graphic but a realtime phisic simulation. So really engine is a solid bar made from "phisoniy" metal, covered by thin layer of "graphoniy" metal.
  15. Fulcrum.013

    Game Engine or custom game engine?

    Just figure out a list of features that you game will have. Than compare it against list of featutes that existing engines able to perfom. And you will see is it have reason to use one of existing engines, or make engine or mini-engine from scratch. Generally, it is 2 main reason to make custom engine : 1. You need something very simple and lightweight. Also it good way to study concepts that drive engines work inside, and it can be done a very fast. For example simple tunnel walker has take from me around a week, and simple arcade space shooter has take less than month of development completely from scratch. 2. You need something amazing new, that not suppoted by existing engines and can not be added to existing engine making custom components for it. And it maraphone distance run. For example it take around 2 years for me to briefly get in phisical and advanced mathematical background of it.( I started reserches into it field already having Master degree in Applicative math and CS and 20+ yeras of expirience in general software development including FA and scientific software). Also it require a huge work to implement infrastructural libraries, like custom containets, in-scene GUI contols libraties, persistent technology that allow to serialize/desetialize trees of objects, and so on auxiliary tools that existing engines already have from box.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!