Jump to content
  • Advertisement
    1. Past hour
    2. Patlatik

      Pixel Boy: Summer Adventures

      Retro style platformer game about Pixel Boy adventures. Can you help our hero to complete his adventure? Simple run and jump, smash crabs and collect bonuses! The BOSS waiting you. You can download game there: Play Market
    3. I need to transform both vertex and normals between these coordinate systems: OpenSceneGraph: X right, Y into the page, Z up Unity: X right, Y up, Z into the page As far as I can tell, changing between right and left handed coordinate systems can simply be acheived by swapping two axis. For example swapping z with y should be enough. So my questions are: 1. What about the normals? Would swapping their axis be enough? 2. If I need to rotate the model after converting the normals to the correct coordinate system, do I simply apply that rotation matrix to the normal vector, as I do to the vertex point?
    4. Today
    5. TheyCallMe

      Gold-project needs a new team

      Hello There, After reading everything I want to give you a hand as a Programmer [Note: I am not a professional programmer. However, When It comes to using GML and GMS I can do almost everything]. However, Can you tell me a little bit more about the game so I see if it's the type I can help with? Is it a Platformer or something like that? Or it's an endless runner? Give me more information, please. Either here or by a PM.
    6. Hi! The title may look a bit "too good to be true" and the typical app dream. But this project was tried stolen by a large Norwegian company a year ago. Me and my programmer tried to set the pace, but after a while we saw that we did not have the knowledge or contacts to complete the game. I have now taken over the project 100% and looking for a team willing to build the app against 50% of ownership. Regarding the situation with the company that tried to steal the idea, I have all the papers in order and the right on my side. They signed a confidentiality agreement before we presented the app. We were offered a ridiculous small stake since they "already worked on a similar app". I have concept description, design, rules and layout in order. I have a lot of experience in sales, business and marketing. But when it comes to developing the app itself, I have no experience or enough knowledge. And since I have no contacts in the "app world" I have to try to find a partner through forums. The game will be presented when I have found the right team and the confidentiality statement is signed. This app is my heartchild and I have great ambitions for it. Hopefully, I find someone who has the experience, the knowledge and the ability to complete the project. It is a 2D project with a lot of use of pixels. and even though I have the rights on my side, I'm keen to get the project up as fast as possible. As I said, it is my heartchild and I can not see it being stolen by a dishonest and dirty company with money, so it's important that it be launched as fast as possible.
    7. DvDmanDT

      C++ Common Runtime

      This is pretty much what I was referring to really. While I'm sure there are instances where these things make it easier to express high level behavior/logic, my impression is that most people are using this to ensure certain low level behavior (ie make a more efficient implementation, tailored to your particular needs at the time). To get back to the original question however.. Even if you can compile your code to some intermediate format (like LLVM apparently supports), you are only solving half the problem. You also need to ensure that certain features exist on the target platform, and that the way to interact with these stay the same. If you take something like .NET, a part of it is the JIT compiler, but do not underestimate the importance of the framework libraries that are defined for the platform. For a game, this could for example be OpenGL/DirectX, or for older games, some way to acquire a pointer to the frame buffer shown on the screen. And even if you get that pointer, will the image format remain the same? Will the resolutions etc? Those are the true problem with cross platform code imo, not cross-compiling/jit-compiling/translating the machine code.
    8. _the_phantom_

      Writing portable Vulkan

      *lumbers in to life for the first time in a while* On memory; while it is a bit of a pain it also has some advantages in that you can do something you previously couldn't do - alias memory. Granted, this needs a frame graph to sort out memory life times but it does mean that you can control the memory footprint a bit better (EA's frame graph presentation from GDC '17, iirc, has some good numbers). If you can't be bothered to deal with memory pain up front then AMD's memory allocation library is a good place to start ( https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator ) - the main thing you have to remember is that actual allocations are limited, I've not seen support for more than 4096 in the wild, so you'll be block allocating and then sub-allocating from that block. The main wrinkle I know about in this area is that NV seem to prefer that their render targets are allocated separately (see 'VK_KHR_dedicated_allocation', which might have been rolled in to the 1.1 spec; AMD lib above will use it afaik) and they have a fair few rules on alignments of types for buffers and images. AMD on the other hand seem not to care, often reporting very low alignment requirements so be careful with that when trying to sub-allocate/work out block sizes (someone I was helping out was basing block sizes for buffers on alignment information, his NV card gave him a large-ish number so things work, where as AMD reported back '1' which caused him to allocate a new block per allocation). It might be worth looking up the various numbers on https://vulkan.gpuinfo.org/ as a reference. The other advice I would give is - test on AMD as this is the only way to be sure you've not screwed up barriers/transitions. Put simply AMD require you to get this right; get it wrong and you'll luck out with it working at worst, corrupt or crash at best. NV, on the other hand, ignore all barrier function calls. Totally. They have their own low level state tracking which they apply so your barrier calls can be doing all manner of crazy incorrect things and it'll just work on their hardware/drivers (driver bugs not withstanding which is just a massive 🤦‍♂️ given the whole point of the new APIs... ). Basically NV is not a good test platform for correctness.
    9. dimaCyberpunk

      Chronicles of cyberpunk: Awakening

      Here is all 11 locations from the game. These screenshots will allow you to estimate its scale. The most important thing for me is to make this world more alive than in the previous game
    10. Andrew Colligan

      Magick with a K

      Amazing paper that can definitely push somebody to write more about topic related to this. Unfortunately, sometimes not many people know which words exactly are nedded to be used. Kinda sad, but it's cool that nowadays it can be fixable. Anyway, guys from family essay org always ready to help!
    11. Shaarigan

      C++ Common Runtime

      I don't agree with that statement either, C++ is way more than just "squeeze the last bit of performance out of a specific platform". I code C++ for a long way now and didn't need to use those tricks like intrinsics or even inline-assembly when writing games and agem engines for years. This is because code is already being optimized by good compiler backends like LLVM. Best example here is Matrix Math, I wrote matrix 4x4 multiplication in clean C++ without explicitely use of SSE instructions. How to say, performance was bad in MSVC but even beats the intrinsic version in LLVM because LLVM is already clever enougth to detect what I want the code to do and let the code be as optimized as possible. Other points I like to work with C++ way more as with C# for example are totally freedom to do anything with your data and template model. C++ isn't interested in how your data is formatted, have a range of memory in hand use it as byte-Array, integer-Array, struct or whatever isn't limitted while other languages especially CLR complains about storing an Int16 in an Int32. The freedom to manage and waste or don't your memory, the freedom of writing static global functions or fully OOP kind classes and last but not least the way more supported template and preprocessor capabilities. This is what makes C++ unique in my opinion! To get that point clear, I'm not in having run 20 year old software on modern hardware without any tweak or recompilation but this was a theoretical general question about how could this be possible in future development. And yes, I already thought about something like precompilation translated code and about (already described above) to keep those loading time aware. My solution would be whatever modern compiler do after the precompiling step before assembling this into architecture specific code. I don't think that those code will run significant slower than native cross-compiled code for that architecture and one will however need to use preprocessor flags to determine platform specific function calls anyways in cross-platform development so this isn't a real statement against a CR :)
    12. Mind Bullet - Stupid Zombies Kill radioactive brain eating vampires with bouncing bullets! Click here https://play.google.com/store/apps/details?id=com.bestsoft32.mindbullets&hl=en
    13. Shaarigan

      AI for large numbers of RTS like units

      In modern gameplay, those tasks are done via Behavior Tree rather than the simple state maschine. I worked on games with very large scale of units that have had to be controlled (500 AI units) for a traffic simulation. Those units each have had driver behavior from simply follow there road, change lanes and taking other ways on cros-roads up to complex traffic behavior and seeking for a parking spot. This was all done using a single behavior tree of actions and conditions. It has certain types of nodes to code your actions with; split nodes to link certain sub-trees together, condition nodes to evaluate what sub-tree to follow and action nodes that map to functions n your gameplay code. If you have several units sharing the same tree, there should be a way so that your BT is a singleton object and each unit manages it's state by it's own. This way you keep your units away from wasting multiple instances of the same tree and just hold the information needed. Make several different trees for different kinds of units or link trees together via conditional actions so you could setup your AI in an additive system from basic actions to more complex ones for certain types of unit.
    14. Hodgman

      Writing portable Vulkan

      I'm focussed on Dx12 over Vulkan, but it's a lot of the same challenges. If you don't use the compute queue, you're in exactly the same boat as you were with D11/GL. It's an amazing new optimisation opportunity, but old drivers don't use it at all, so if you don't use it (yet) then you're not really missing out. The transfer queue is most useful for creating buffers/textures. It's the only way to actually saturate a PCIe bus. Make a code path that uploads textures buffers using this method, then make a fall back that uses the CPU to copy the data (for on board / Intel GPUs). In D12, Intel does actually expose a DMA queue which is backed by actual hardware, but it's slower than the CPU copy implementation. It's only useful when you really want free background copies and are OK with huge latency. Memory management is a pain, but ultimately a better situation than GL/D11. If you went over your budget in the old APIs, the drivers would just silently insert 40ms-long paging operations in the middle of your frames, dropping you off a performance cliff with no notification. Worse, there was no way to query your application's memory budget on old APIs, which ironically made memory scaling more important. You're in the same boat now, but without the automatic "let's break interactivity and pretend everything is fine" auto paging built in. There's kind of two strategies you can choose, or do both... (1) query your app's memory budget and try as best as you can to stay under it. When loading a level, load all the descriptions of your buffers / textures first, then as a large batch operation, determine the memory requirements, then if that would put you over then drop the LOD on some resources (e.g. What if you didn't load the top mip level) and recalculate. Repeat until you've got a configuration that's in budget, and then start streaming in that set of assets. (2) each frame a resource is used, mark the heap that it's allocated within as being required on this frame number. If you hit an out of memory condition, try to find a heap that has not been used for a while and transfer it to system memory. Having relocatable resources is a massive pain in the ass though, so I'd focus on doing #1 more than #2, as the second option destroys performance just to keep limping along anyway... (just like a D11/GL memory oversubscription event). Unfortunately, application memory budgets are dynamic (e.g. The user might start your game after a fresh reboot, then alt+tab and open 100 Chrome tabs...) so you ideally you should respond to changing situations... Alternatively you can just assume that users won't go opening other GPU hungry apps while their game is running...
    15. JoeJ

      Writing portable Vulkan

      I have texted on NV 670, 1070 and AMD 7850 and FuryX. No issues, but i have only simple debug visuals and mainly compute. Validation is really helpful - it's harder to make this happy than the hardware. (Hardware is more forgiving than validation.) To me it seems much better than with OpenGL where i often had issues. I never want to use GL again after the move. But as said i have not yet started work on the renderer, so i can't say much. Yes. Did not figure out details elsewhere than on AMD, but without doubt that graph has to be adjusted for various hardware, likely even different configurations for large or small AMD GPUs.
    16. Riba9495

      2D Concept Artists, Want to Improve your Portfolio?

      Hi! I'm Interested on working for you guys. I usually do my artworks in ArtRage, If you like you can check out my works here: https://www.facebook.com/RibaArtworks/ I usually make Character and Creature Designs. If you guys like what I can offer, you can message me.
    17. khawk

      Chaos Group Announces V-Ray Cloud

      Chaos Group has released the open beta for V-Ray Cloud, a push-button cloud rendering service for artists and designers running on Google Cloud Platform. V-Ray Cloud can turn a workstation into a supercomputer, unlocking the unlimited power of the cloud to help users hit deadlines and render faster than ever before. V-Ray Cloud will be free to use throughout the beta. V-Ray Cloud removes the hardware barriers that keep most cloud rendering users at bay, simplifying the process for the everyday artist. Soon, with a click of a button, users will be able to render an entire animation in the time it takes to render a single frame, without having to track assets, juggle licenses or set up virtual machines. V-Ray Cloud will also be integrated into all V-Ray products, bringing a rapid speed boost to artists and designers in a pinch. “V-Ray Cloud will be there whenever you need it, as a natural extension to your workflow,” said Boris Simandoff, V-Ray Cloud Director of Engineering at Chaos Group. “As needs arise, just submit a job and we’ll do the rest. It’s really simple.” V-Ray Cloud Features: Google Cloud Power – V-Ray Cloud is currently deployed on the Google Cloud Platform, providing a highly secure, scalable system for on-demand, high-performance rendering. Smart Sync – Automatic scene updates for new changes, ensuring fast upload times and renders. Smart Vault – An optimized storage system keeps assets in the cloud for use in future projects. Remote Control – Job settings can be changed and resubmitted from any device, without opening the scene. V-Ray Cloud is now open to all beta testers. Apply now to try free cloud rendering for a limited time. Chaos Group will be demoing V-Ray Cloud at SIGGRAPH 2018 in the Google booth (#1423) on August 14 from 3:00 p.m. to 6:00 p.m. and on August 16 from 9:00 a.m. to 12:15 p.m.
    18. khawk

      Chaos Group Announces V-Ray Cloud

      Chaos Group has released the open beta for V-Ray Cloud, a push-button cloud rendering service for artists and designers running on Google Cloud Platform. V-Ray Cloud can turn a workstation into a supercomputer, unlocking the unlimited power of the cloud to help users hit deadlines and render faster than ever before. V-Ray Cloud will be free to use throughout the beta. V-Ray Cloud removes the hardware barriers that keep most cloud rendering users at bay, simplifying the process for the everyday artist. Soon, with a click of a button, users will be able to render an entire animation in the time it takes to render a single frame, without having to track assets, juggle licenses or set up virtual machines. V-Ray Cloud will also be integrated into all V-Ray products, bringing a rapid speed boost to artists and designers in a pinch. “V-Ray Cloud will be there whenever you need it, as a natural extension to your workflow,” said Boris Simandoff, V-Ray Cloud Director of Engineering at Chaos Group. “As needs arise, just submit a job and we’ll do the rest. It’s really simple.” V-Ray Cloud Features: Google Cloud Power – V-Ray Cloud is currently deployed on the Google Cloud Platform, providing a highly secure, scalable system for on-demand, high-performance rendering. Smart Sync – Automatic scene updates for new changes, ensuring fast upload times and renders. Smart Vault – An optimized storage system keeps assets in the cloud for use in future projects. Remote Control – Job settings can be changed and resubmitted from any device, without opening the scene. V-Ray Cloud is now open to all beta testers. Apply now to try free cloud rendering for a limited time. Chaos Group will be demoing V-Ray Cloud at SIGGRAPH 2018 in the Google booth (#1423) on August 14 from 3:00 p.m. to 6:00 p.m. and on August 16 from 9:00 a.m. to 12:15 p.m. View full story
    19. krb

      Help in Naming my Games.

      Flubz. Just "Flubz" Cretaos (A mix of " Cretaceous" and "Chaos", better yet just go with Cretaceous Chaos, Paleolithic Panic, Triassic Trouble, something alliterated preferably with a dinosaur containing epoch and a synonym for an urgent situation, you get the idea.) It's kind of hard to name the character without knowing the back story and who the character is supposed to be. Is he a scientist or a soldier? Why is he there and where did he come from? Elementary School Edison, but that's not as good as Jimmy Neutron, if you can't procure the licensing to that intellectual property or somehow invent it before the owners Elementary School Edison is your next best bet. Obviously his name would be Tommy. Dick on the Beat. A game about a detective on the beat. Maybe work some kind of rhythm element into that one during interrogations or something. With this one I would need to know a little more about the story so it doesn't end up sounding generic. Give me another key point in the story or with the game mechanics. We'll go with Tommy for the name of this character too. This is another one some more of the story or setting would help come up with a good name. All I can come up with currently is a million different variations of "The _____ Family" which sounds stupid. The surname should be "Quartlet" a deviation of the word quartet. I hope this helps.
    20. cyberpnk

      Writing portable Vulkan

      I don't have any advice, but I'm messing around with Vulkan as well and would be interested in what you are asking about.
    21. Lactose

      Ads are back

      Have to run to work, so can't post screenshot, but I'm definitely getting ads with ad choices like you just posted.
    22. cfrankb

      LGCK builder

      LGCK Builder provides a unique development environment that can be easily used by novice and seasoned game creators to get the best results quickly. Our approach is different because the philosophy is geared toward simplicity and re-usability. The out of the box solution to create any kind of 2D games. LGCK builder lets your imagination run wild. You can easily create your own objects and place them in any way you like. Watch the come "alive". Multiple layers : Create them through the GUI. Let the engine handle the details. Animation sequences management : Animation can easily defined for every situations and are taken care off internally. Crossplatform : The source can be compiled on either Windows and Linux. Making this the ideal way to distribute your creations. Fully customizable : LGCK sports an event model that make it easy to extend or even redesign the default behaviour of the engine through scripting. Project homepage: http://cfrankb.com/lgck/
    23. Yes, it is very suitable. Describing it sounds more complex than it really is. Here is an article with a few variations, the last example with animals running around is closest to what you describe. Several of the games I've worked on included variations of nested state machines mixed with some degree of utility functions. Hopefully they don't scare you off with descriptions. The individual state machines can be self contained and composed neatly. One state machine goes through all the actions it needs to complete its goal. Actions are made available as part of a pool of actions associated with the entity, and behaviors are chained together through state machines both by nesting and by utility functions. You're talking about a large-scale game with many unit types, this type of system tends to grow rapidly and is best suited for teams of programmers and artists/animators. In your example you've got attack, patrol along a route, move, take off, and more. Each one of those can be broken down into smaller bits. You probably will have several move actions: walk, run, search, crawl, fly, etc. Those can be encapsulated by a bigger command like MoveTo(), that would accept a target to move to along with a preferred moving style. Infantry may have available actions of walk, run, search, and crawl. Tanks may have a "walk" that moves slowly but retains the ability to fire, and "run" that moves quickly but cannot fire. Aircraft may only have fly, which may require transitions for landing and launching. MoveTo() would look at the unit's available actions and choose an appropriate movement to get somewhere. If moving somewhere requires moving along waypoints it could run one move action to the first point, then another move action to another point, then another move action to another point. MoveTo() could also be smart about distances, if a unit has a short distance to travel it could choose the walk action, if it has a long distance to travel it could the run action. Some units may have complex forms of movement, such as tanks or aircraft that can accurately fire while moving. Now you can compose that MoveTo() into bigger behaviors. Patrolling means running MoveTo() with a particular set of parameters, plus on every update also search for enemies. Attacking can check for distance, and if they're too far away they can call MoveTo(). After that you can compose behaviors out of a longer series of actions. "Collect resource" behavior means the action of identifying a nearby resource, moving to it, harvesting the resource, traveling back to the storage location, and depositing the resource. Occasionally you'll want units to look for other actions to do. Generally you don't want this to be continuous so the work load is distributed over time. A patrolling soldier may re-evaluate if it should do something else every time it completes a walk cycle. A unit playing the unit's idle could wait until a full animation has completed before re-evaluating. Having a "keep doing this behavior" is an important behavior for chaining. When the unit is done harvesting a resource it might repeat the behavior. But it is important that actors are constantly re-evaluating what they are currently doing, and they generally need a way to stop doing whatever they are doing. For example, units that are harvesting resources or that are patrolling should have the ability to stop and re-evaluate their actions when they're attacked. When re-evaluating the system can make a short list of all available actions. Exactly how you do that will depend on the game, maybe attaching actions to game objects like enemy actors or to invisible spawn points, maybe having free actions that search for proximity around characters, or maybe through some other way that works for your game. Use a utility function to see how much the character wants to do something. Actions like idle have very low desire, actions like "defend myself" are very high desire. When you want units to behave nearly autonomously you want many options with high levels of desire. In life simulators like The Sims the actors should have a long list of potentially interesting activities to choose from. In military simulations where characters do very little unless commanded, the action should usually be "keep doing whatever I was doing before". As these types of games grow, they typically start out with a small number of behaviors and a rapidly-growing number of actions. Already mentioned there will be several actions for moving between places. Aircraft will have different move actions than tanks, which will have different move actions than infantry. Moving while carrying resources may be different than moving while unloaded. As the number of actions increases you gain the ability to build more complex behaviors out of them. As mentioned, harvesting resources involves at least four actions in a chain. Building a structure may involve several steps as well.
    24. cfrankb

      LGCK Builder

      LGCK Builder provides a unique development environment that can be easily used by novice and seasoned game creators to get the best results quickly. Our approach is different because the philosophy is geared toward simplicity and re-usability.
    25. deltaKshatriya

      How to avoid bugs

      100% this. There isn't a programmer out there who hasn't had bugs in his/her software. I don't work in the games industry, but I do work in software and have worked in a variety of different aspects of the industry over the past few years (long story how). Another thing worth noting is that beyond a point bugs are an unavoidable side effect of coding. There's ways to mitigate its effects and to deal with it, but usually there will be bugs throughout the software lifecycle. There's just too many ways that things can break, usually beyond the realm of predictability. After a point, there's only so much we can foresee of potential edge cases and usage cases of the software. Typically the key is to be able to mitigate, diagnose, and fix quickly. That's not to say that we want bugs: we avoid as much as we can by means of unit testing, performance testing, and CI/CD pipelines to mitigate these issues, along with all the tools others have already posted about.
    26. Hi All I'm looking for a tester to help with my 2D Game Construction kit project. No experience required. Basically you just try the newest builds,, find bugs, and provide feedback. Project homepage: https://cfrankb.com/lgck
    27. Folks continue to tell me that Vulkan is a viable general-purpose replacement for OpenGL, and with the impending demise of OpenGL on Mac/iOS, I figured it's time to take the plunge... On the surface this looks like going back to the pain of old-school AMD/NVidia/Intel OpenGL driver hell. What I'm trying to get a grasp of is where the major portability pitfalls are up front, and what my hardware test matrix is going to be like... ~~ The validation layers seem useful. Do they work sufficiently well that a program which validates is guaranteed to at least run on another vendor's drivers (setting aside performance differences)? I assume I'm going to need to abstract across the various queue configurations? i.e. single queue on Intel, graphics+transfer on NVidia, graphics+compute+transfer on AMD? That seems fairly straightforward to wrap with a framegraph and bake the framegraph down to the available queues. Memory allocation seems like it's going to be a pain. Obviously theres some big memory scaling knobs like render target resolution, enabling/disabling post-process effects, asset resolution, etc. But at some point someone has to play tetris into the available memory on a particular GPU, and I don't really want to shove that off into manual configuration. Any pointers for techniques to deal with this in a sane manner? Any other major pitfalls I'm liable to run into when trying to write Vulkan code to run across multiple vendors/hardware targets? ~~ As for test matrix, I assume I'm going to need to test one each of recent AMD/NVidia/Intel, plus MoltenVK for Apple. Are the differences between subsequent architectures large enough that I need to test multiple different generations of cards from the same vendor? How bad is the driver situation in the android chipset space?
  • Advertisement
×

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!