Jump to content
  • Advertisement

All Activity

This stream auto-updates     

  1. Past hour
  2. Today
  3. An interesting discussion, giving my two cents to that topic; I think a game engine is more than the game that is set on top of it. The game engine is at least at some point a genarlized framework that offers a feature set you make your game with. This feature set should include Basic platform handling and API abstraction (in C like languages) Provide some kind of memory management (in C like languages) Have a math library Have an input library Provide some kind of render engine because such features is what you need in every game regardless if it is 2D/3D or a text adventure (yes folks, text is also rendered!). I don't think a game engine needs a lot of asset pipelines, a complex editor or online.store capabilities as a must have to call them game engine.You could even have your game engine read a lua file and create the level from it without a visual editing feature, have a Blender plugin that converts assets into a format that could be directly loaded into the game etc. Unity, Unreal and Game Maker are designed as a whole in one solution what is absolutely ok but dosen't make them more a game engine as for example Urho 3D is a game engine. Today we are familiar with tools like a full blown level editor or even Intellisence when we code but I think convinience is ok for some point but convinience also makes us lazy. In my case, I designed my code to be modular, small and flexible, write my own tools and try to do as much on my own as possible. First this was the reason when I started learning all these stuff but today I came to the conclusion that doing stuff on my own has brought me to where I'm and I would rather use my own Array implementation than using the STL one, even if it takes longer to come to see results, even if my results don't 'look' that fancy as those from a million $ busines company. But back to topic, I also disagree with the statement of @1024 per se but just for the fact of the feature set that a game engine must have. For me a framework begins at the point of general code reuse, a game engine begins at the point when a framework reached certain feature set that is but not most entirely related to games (as described above) and anything beyond is a game creation suite. This said, lets be nice to each other 🤗
  4. Zaoshi Kaba

    Connections to/from India/UAE/Etc.

    At work I have encountered network issues with users in India. Main issue was slow internet speed - both, upload and download, were only 200 KB/s. But there weren't any issues with timeouts.
  5. DerTroll

    Rendering Order, Blending and Performance.

    What is usually done is that you separate opaque objects from transparent ones before rendering. Then you draw all opaque objects in front to back order. Afterward, draw the set of transparent objects from back to front. You can keep lists or separate them during the ordering of the objects. It's just one additional condition. However, there is another Issue: If you have transparent objects which intersect, you won't get a correct back to front order, regardless of what you do. So there is another technique called Order Independent Transparency (https://en.wikipedia.org/wiki/Order-independent_transparency). This might also be an alternative for you. Greetings
  6. I am not really sure how you are doing things, but it sounds to me like you are doing memory management yourself with new and delete. From what I understand, I think your class layout is suboptimal. Please provide a little bit more code, so that I could get a better understanding of what you are doing. It is definitely sub-optimal for various reasons. You listed some of them yourself. As @Gnollrunner mentioned, in C++ you should think about using smart pointers and STL/Boost/etc.-containers to handle memory management. They exist to avoid the problems you mentioned. You can use shared_ptr and weak_ptr in this case. Weak_ptr help you to avoid problems when the keyframe is deleted. Before you use the object it is pointing to, you have to check if it is still valid. Of cause, this introduces an overhead to your program. Additionally, shared ownership introduces a whole bunch of other issues, that might haunt you later. To my experience, situations like you described result from suboptimal and too complicated class layouts - not always, but often. Maybe you should check if the way you are doing things is really the optimal solution to your problem. Why does another class need direct access to a specific keyframe? Can your track class provide interfaces to do certain operations on a keyframe instead of exposing them to the outside? Again, a problem of your layout. If your object deletes itself from its owner then nobody else but the owner should be able to create such a class. What happens if you create a keyframe and don't add it to the track? What is deleted from the track in this case? So m_Track.Add(...) should take care of the construction. You can use a private ctor for Keyframe and give friend access to the track class to restrict construction outside of a track. Not the best solution, but works. I think the best solution for you would be to put some deeper thoughts into your ownership relations. In case I misunderstood you, forget about all the crap I wrote. 😛 Greetings
  7. So I've heard that rendering front-to-back can increase performance due to the z buffer. I understand how this works but what happens to blending? In order for blending to work you need to render from back-to-front. Moreover: For blending, the technique I know and use, is that in every frame I calculate the distances of all the objects from the camera, then order the objects in descending order from larger distance to smallest and then render first, the objects which are farther from the camera. This has two disadvantages, first the calculation of the distances and the ordering take some time and secondly I can't use front-back rendering. The first disadvantage can be optimized with a tree queue quite well but still I need to go through all the objects in order to generate that tree (nlogn total time). Is there a way to mix this blend technique with front-end rendering? or am I stuck except if my scene does not use transparent objects at all?
  8. We are currently building a team for a Narrative-Based 2D-Adventure. Examples for inspirations are Night in the Woods and Life is Strange. The Screenshots are from a technical prototype (Character & Art only dummy for demo-purposes) We are looking for a writer and an artist. Detailed Infos can be found here: https://meneither.itch.io/me-neither If you're interested, write to: MeNeither@web.de
  9. Hi all. Today I have published my second game for mobile devices. Swipe, Stop is a kind of super addictive puzzle game. The game contains over 200 unique levels. Try to find the best way to complete each level. Every level is possible to solve. Yet not everyone can do it! Do you think you can do it? Currently, the game is available on google play. Google Play: https://play.google.com/store/apps/details?id=com.Worthout.SwipeStop Any feedback will be appreciated.
  10. It's not really bad practice, in fact it's quite common. To do something like this in C++ you will typically use smart pointers. To support single ownership you can use std:unique_ptr. To support multiple ownership you can use std::shared_ptr. Alternatively you can write your own smart pointer system or implement a garbage collector but these options are less often taken.
  11. Hi everybody, Let's take the example of one keyframe class and one track class. The track contains an array of keyframe, so the track own the keyframe. Is it a bad practice to get the pointer of the track, the owner, in keyframe and remove from the track in the destructor? Basically doing "delete keyframe", you don't have to do remove from the track before the delete. But then the issue of this design is if multiple class share the element, it's not safe because it will remove only on the track but not the other place. Another issue is if you create the keyframe on the stack and add this keyframe in the track: { Keyframe keyframe; m_Track.Add(keyframe); } At the end of this scope, the keyframe will be removed from the m_track, it's not safe on this case too. What do you think about all that?
  12. Let's say we have multiple game engines, and they are all open-source. If we have a common way to be able to plug features in and out and transfer them between engines, this provides for the most flexible environment. If somebody only needs 2D sprites, input and basic collision detection, like OP, let's collect all necessary code into 3 files: Sprites.cpp Input.cpp Physics.cpp If somebody wants more, let them dive into and build from a codebase as complex as needed. I look forward to a day when it won't be a matter of choosing U-something versus framework versus bare C++, but only a matter of getting the right .cpp files into a directory (hopefully all licensed MIT or similar) and hitting play, as far as technical features go. The game is scripts, models, textures and audio. Individual title publishers should retain all the copyright to that. At the end of the day, it's not a matter of what the engine is, but whether the game is out, what it looks and sounds like, how many players it has and what the rating is.
  13. LiamBBonney


    Hi, my name is Liam, founder of TheIndieGamesLab! The hub of gaming experimentation. We believe that testing and experimenting with new and unique ideas is incredible important at TheIndieGamesLab. We also understand that when people have created something so different it is important to bring it into the spotlight, whether that be a new mechanic in a game, a new type of visual or even a streamer play testing and experimenting with new games. It is important to break pattern! If you feel your work is something unique and fresh we are here to help you not only promote your work but share ideas and experiment further with you. The idea of experimentation is fascinating to us. This is why the name TheIndieGamesLab has been chosen. We are fully aware of the importance of bringing great work and discoveries into the eyes of the public, ESPECIALLY when it’s a new and unique idea! Not only will we do our very best to help Indie Game Developers, we are helping any gamer with a new and fresh idea that they want to bring to the table or be displayed in front of the gaming community. This means we are here to help Indie Gamers, Indie Game Devs / Studios and so on! As well as helping the gaming scientists out there trying to bring something fresh to the lab, we want to inspire gamers to start experimenting and create something memorable. This is the start of something special. Together we can make TheIndieGamesLab the hub that gaming content creators can come to gain the recognition and support their work deserves! And become a movement! A movement to inspire and create! I have also created a discord server providing a platform for indie game developers to communicate with one another to help support each other and upcoming and existing projects. This server lets people get instant support from indie game devs that are just as passionate about it as you! You can also promote you new projects or post updates to your current projects, please com along, I look forward to seeing you there. Let's support each other in this crazy world that is indie games! Join now at https://discord.gg/efa6j3a
  14. What's wrong with just calling it "a game"? Does it sound too simple if it doesn't have a tech-sounding name? Are developers afraid that they won't be taken seriously unless they are making "something bigger than that"? These things are supposed to be reusable, right? I propose a limitation: you can't call your game code "an engine" until you use it to make more than one game. Until then, it is "just" a game. And there is nothing wrong in just making a game.
  15. Gnollrunner

    Help, a question regarding Game Development..

    We could compromise and call it a frame-gine 😁
  16. Green_Baron

    Help, a question regarding Game Development..

    How about calling the home brew to support the flow of a game a "framework" instead of "engine" ? With "framework" being api specific, game specific, maybe some platform independence built in, resource management, that stuff, while an (lowers voice in awe) "engine" (back to normal) contains much more middleware than that, more editors, more abstraction layers, more independence, more bugs ? 😎 That's a rectification for writing an own framework and leave the tedium of an "engine" ... Ok, that wasn't 100% serious. But hey, if it is a simple thing, why not write an own "framework" ?
  17. I disagree with this. 😛 A game engine is in my point of view a separate piece of software / API that provides all the necessary submodules that are necessary to run an arbitrary game. This includes rendering, networking, input, memory management, CPU load management, asset management, etc. Assets and your game logic are not part of the engine. That is what makes your game. Content creation tools and editors are written FOR an engine and are not strictly part of the engine. You don't need them to run the engine. I would call the thing you are talking about more like a game development kit, but that is just an opinion. However, I think you are right that people who write their games without an existing engine can't claim that they have written their own engine most of the times. The separation of engine specific tasks and game logic is often not given so that you can't use the "engine part" for other games. But again... opinion. 😛 If you don't use an engine, you will sooner or later have to write "engine specific" code. But I think it won't get too much in a 2d game. A lot of stuff like collision detection, physics and graphics are (extremely) simple in 2d. I never used SFML, I just read about it a long time ago, but I think that might be the thing that suits your needs most. If you use OpenGL, as some people suggested, you will have to do a lot of stuff that has nothing to do with your game ---> create and compile shader programs, load your images, cull objects before drawing them, etc. In a 2d game, this is not really complicated, but it takes time to do it right if you have never done it before. Greetings
  18. Gnollrunner

    Help, a question regarding Game Development..

    Well that's one definition, but then as Wikipedia says "A game engine is a software-development environment designed for people to build video games". If you ask me that can be a lot of different things. I personally would not limit it to some specific model. But I don't want to get into some big discussion on the exact meaning of a couple of words. I've had people telling me I'm not using voxels because mine are prisms not cubes and I'm using an octree not a matrix. On the other hand I'm using something almost identical to marching cubes and plan to add extended marching cubes (or extended marching prisms rather) functionality. These are classic voxel routines. But if someone want's to insist I'm not using voxels, I don't really care. It runs just the same. So in short... Call it what you want. Game engine, framework. API, what have you. For me, if someone calls their set of libraries a game engine, I don't have a problem with it. Your mileage may vary.
  19. LoicJoint

    New Game Developer

    Hi ! That sounds like a nice little game, welcome to the forum!
  20. Or it could be that they just call what they built "a game engine" I strongly disagree with this. Given the kind of game engines we have today, I think that "code that runs your game loop" should not be called "a game engine". And yet, for anyone making a game without using an existing game engine the favorite thing to say is "hey, so I'm making my own little game engine..." when in fact what they are making is "a game". Game engines today come with asset pipelines and visual editors and middleware support and a whole other bunch of stuff that I can't remember Putting them in the same basket with single-game specific boilerplate code feels wrong. I believe there should be a distinction between the two, so that we can properly use the age-old "write games, not engines" advice. For an experienced programmer who wants to make a game, there is nothing wrong with doing that by mashing together libraries and frameworks, and writing code that will be suitable to run their (one) game. The "don't" part comes when they try to make a generic all-purpose game engine without ever making a game using it (or worse, instead of ever making a game with it), all that without having any requirements or real-world experience in mind. So yeah, if you are a programmer and want to make a game without using a game engine, go ahead and do so. Just don't call it a game engine, ever That will just attract unwanted attention. For a better than mine look at the same subject, read Write games, not engines. It is/was the most commonly quoted advice for beginners. But because it was referred to so many times, people stopped reading the article and just try to deduce the meaning from the title alone. Make sure to read the whole thing, not just the title
  21. VoxycDev

    First Person Catcher?

    I'm starting work on a new game prototype. It will be a first person catcher (as opposed to shooter), family-friendly and re-use typical FPS mechanics, but with an opposite goal: instead of avoiding projectiles, you must catch them. Summary: a sad girl walks around a green field with pink castles and picks flowers. The world is populated by cute animals (bunnies, ponies, kittens). She throws the flowers to the animals and they reward her with fruits, candy and hearts that she has to catch to keep her happiness level up. If she cannot catch enough items in time, she gets depressed and falls asleep. Below is the first iteration of the bunny character (will be realistic and 3D eventually).
  22. I'm currently trying to develop a similar game to Osu! for a project in my university and want to find a device (tablet) that will things easier for me, I saw these and I think they are fine options. I'm fairly new to development, any suggestions that could make my experience a little bit easier and fun? Thanks!
  23. And a render framework that displays them to the screen and a texture manager that keeps track of the sprites uploaded and an asset manager that locates those on disk and a scene manager that keeps track of the objects placed in the scene its background its foreground and an input manager that carries the buttons to actions into your gamelogic and a math library to draw things at the right position, rotate and scale and I have missed anything else 😉 So in the end you need a framework anyways as @Gnollrunner already mentioned or it will appear in your development process. I do make games for a long time now and have worked with frameworks/libraries only but also full-featured engines and the one point I got from all that is that you need anything and anything dosent fit well into what your personal requirements are to the feature set. I often thought "I would have implemented that feature in another way" or "I could do that better" and this will never end; is a sign of deep knowledge just away from the "normal user" and it is ok. If you have to do something quickly, you learn to get arround limitations or end up having a library full of utility code for the engine you develop your game on top or you go and write your own one; its all up to you. I do both of these, at my all-day-job work with the environment my employer orders me to work with and in my spare time write my own stuff since 6 years now; fully from scratch. Maybe as a point to get started, you can use the legacy OpenGL tutorials up to Lesson 10 so you have anything learned from simple graphics to input handling and texture loading to build your 2D game from scratch. Unfortunately, the example code seems to have been moved or removed meanwhile. YOu could either start using C++ managing the platform stuff by your own or even use (plain) C# and OpenTK as OpenGL wrapper similar to GLFW for C++ if you want to platform independent. For a simple game this will work but beleave me, at some point you'll start writing your framework
  24. A friend has a desktop application (a “‘lication” for short) that connects to the Internet to get small chunks of data it needs. Apparently there are some places where it seems to constantly time out, with India and UAE given to me as examples. Said person’s research suggested their governments might be sniffing too many packets for speedy Internet, so apparently the only solution is what Google did: Increase the timeout period. Anyone have insights into this? Is it just some issue that we can’t solve, or is there a hidden layer? L. Spiro
  25. Alberth

    Need pathfinding idea feedback

    HashSet would work. Indeed it doesn't provide storage for positions that you don't have, on the other hand, internal book-keeping of a hash table isn't free either. https://en.wikipedia.org/wiki/Hash_table has a lot of details. The load factor there may be killing your advantage (75% load factor is around 25% free entries, ie (= about 3*6000*6000/4 free for a full map)). In general, arrays are extremely fast to access if you have a simple incrementing integer value that you can use for indexing (which you have with positions). One question you may want to consider is whether you need all 3 floors loaded, or even, do you need the entire floor? 3*36M tiles is nearly 100M tiles. If 1 tile is 64 byte (which you have soon), it's 6,4GB memory that you need, not counting any overhead to organize the tiles in 3 floors.
  26. Thank you for your suggestion. This gave me some ideas. I will try it out
  1. Load more activity
  • 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!