Jump to content
  • Advertisement
  • Features

    1. Past hour
    2. Thank you for your comment. But I have no idea about what 'makefile' is or to 'make'. I just... wanted to use soil2 for my first opengl/c++ application. What I used is premake4 to 'make' soil2. That means, I didn't even write the makefile by myself... so is there anything to do to handle this?
    3. hello! i'm looking for a way to convert xls data to CSV then create a binary from it, where i'm going to read data for my game.. anyone have a good resource where i can learn something? i'm just using google but i'm still confused to how do it
    4. Today
    5. How you do it depends on your game, and has been unique to every game I've worked on. It also matters if you're reusing textures, or sharing them through systems like texture atlases. Sharing textures within a level, sharing within worlds, or being unique to each model, they naturally suggest organization structures by the level, by the world, or by the model.
    6. There are good reasons that it has stabilized where it is today, but that doesn't mean it will be that way forever. Who knows what changes will be made with future computer advancements. Designing and building parallel algorithms is a major shift for people who focused on single-threaded processing; even concurrency is problematic for those game programmers who are light on theory. When we get quantum computing, who knows what changes we'll see. Best to learn theory --- which is universal and applies to regardless of architecture and regardless of language --- then to focus on what happens to be commonplace today only to be left in the dustbin of history tomorrow.
    7. frob

      Portfolio Question

      Decide which job you are going for, the ones you listed are very different. If you're going for a programming job, a portfolio is less critical but can be nice. It should demonstrate that you know how to program and have an interest in games. It is best to have one or more completed games, even if the games are simple. Showcase your best work. If you're going for a level design job, it is best to have working games showing your level design, preferably with videos documenting why you made the choices that you did. Showcase your best work. Unreal and Unity are both great game engines, the experience you've got with Unreal is sufficient.
    8. That is somewhat accurate for a tiny minority of games. In most situations the publishers say "We have a project that needs making, we'll bid it out." Groups can pitch a game to a publisher, but that is often done because you need a publisher as part of your own company's business development, which is neither a game developer nor marketing team action. You bring them a completed or nearly completed game, and they reject it. Then you bring it to another publishing company, and they also reject it. Repeat until all the publishing companies have rejected it, or someone is willing to work with you. Publishers aren't in the business of giving out money to other companies. Publishers are there to help bridge a gap. If you need a publisher you're going to pay for their services, usually as a cut of the money brought in. The name for that person is often business development director, or it's a task done by the executives and founders of tiny startups before they higher development directors. A business development role needs to know relatively little about the game development process, they're far more about the people and contract side of the business world. They're the ones who wine and dine potential business relations, work with lawyers, and don't really do much for day-to-day game development. They're still critical for the business, but much like accountants and lawyers and HR and cleaning crews, they're important but not for game development tasks.
    9. We are proud to announce the release of Matali Physics 5.0, the fifth major version of Matali Physics engine. The latest release moves Matali Physics engine to the group of solutions supporting the three main next-generation graphics APIs: DirectX 12, Vulkan and Metal on deskop and mobile platforms. What's new in version 5.0? Matali Render 5.0. The latest rendering module brings unified lighting, shading and fogging system ready to extend to ray tracing or combined with ray tracing as well as ready for production use, native, comprehensive support for Matal API. We would also like to point out that in the provided solution we use the Metal API directly without C++ wrappers or third-party libraries. Since Matali Render 5.0 support for Metal API fully replaces support for OpenGL ES 3.0 and OpenGL 3.3 on iOS and macOS respectively; Support for Android 10, iOS 13.x, iPadOS 13.x and macOS Catalina (version 10.15.x) as well as support for the latest IDEs; Other improvements and fixes which complete list is available on the History webpage. What is Matali Physics? Matali Physics is an advanced, multi-platform, high-performance 3d physics engine intended for games, virtual reality and physics-based simulations. Matali Physics with add-ons forms physics environment which provides complex physical simulation and physics-based modeling of objects both real and imagined. The engine is available across multiple platforms: Android *BSD iOS iPadOS Linux macOS SteamOS UWP (Desktop, Xbox One) Windows Main benefits of using Matali Physics: Stable, high-performance solution supplied together with the rich set of add-ons for all major mobile and desktop platforms (both 32 and 64 bit) Advanced samples ready to use in your own games New features on request Dedicated technical support Regular updates and fixes If you have questions related to the latest update or use of Matali Physics engine as a stable physics solution in your projects, please don't hesitate to contact us.
    10. fleabay

      Drawing a sine wave. OpenTK, OpenGL 3.0, C#

      Can I get 12 copies for a dime? Why are you selling something for 1 cent?
    11. This example shows a simple way to draw a sin wave using modern OpenGL and C#. Source Code on GitHub (private repo): https://github.com/8Observer8/Sin_ConsoleAppOpenTkOpenGL30CSharp Source Code in Archive: Sin_ConsoleAppOpenTkOpenGL30CSharp.zip I can sell you this archive for $0.01 Send me a PM message. Or write me on Email: 8observer8@gmail.com My PayPal: https://www.paypal.me/8observer8 These are screenshots for different steps: Pi / 2, Pi / 4, Pi / 8, Pi / 16 Pi / 2: Pi / 4: Pi / 8: Pi / 16:
    12. I am having difficulties trying to understand how a fragment shader (GLSL) works in OpenGL. To be more specific, how does OpenGL reads the color/texture data? In the vertex Shader (GLSL) there is a pre-defined variable that sets the vertex data called gl_Position. So basically I am asking, what is the variable/method that sends color/texture data to the OpenGL program in the fragment shader or do i just type out vec4 fragColor; does that work? (above code)
    13. Hello everyone, I really appreciate all the help i can get. I am starting to become quite well developed as a C++ programmer within the unreal engine, i am still learning though. I am looking to find some example code, and some information on how player controllers should be written in C++ within the Unreal engine with the current version of 4.23.1 too. I understand that player controllers can control inputs for a character or pawn, but i don't understand how to set this up. My real question is what Code is needed for the most bare basic C++ Player controller that functions for a character? Please help. Thankyou for reading.
    14. Bethie

      Portfolio Question

      Hello Everyone, I'm currently in school for game design and was looking for some insight on creating my portfolio. When creating a portfolio is it best to have it focused on your area of interest (programming, design, level design, etc) or to showcase a lot of your different work? Also I'm looking for some advice on becoming more experienced with the different game engines. For school we've used Unreal Engine so that's where most of my experience is. Whats another good engine to practice with? I've been curious about Unity but not sure where to start with it. Does anyone have any tips or links to guides for some of the other engines? Thank you, Bethie
    15. Twin Stone Studio

      The war we lost

      The war we lost is a zombie survival game that is under development now. It will include single player as well as multiplayer. You can explore a big world , craft , build and upgrade. More info about the game + demo in upcoming months.
    16. Vilem Otte

      Music Fantasy Music !

      I like it, a LOT. Can I ask about the licensing/fees? If I'd ever want to use these in some kind of demo/software.
    17. Yesterday
    18. Rutin

      Music Fantasy Music !

    19. You need to format your code. Indentation will help debugging your curly braces. I removed and added the curly brace to fix the indentation, and there were a few issues. Like the Game::init method seemed a bit weirdly structured. After fixing some of those formatting errors it worked fine for me. But I was only testing with one controller. Oh and this if(SDL_JoystickOpen(i) != 1) SDL_JoystickOpen returns a nullptr when it fails. So change the 1 to nullptr Also, can do this to avoid crashing when trying to use a pad current code int InputHandler::xvalue(int joy, int stick) { if(m_joystickValues.size() > 0) do this int InputHandler::xvalue(int joy, int stick) { if(m_joystickValues.size() > joy)
    20. Tathius

      QA skills for games

      Thanks for the replies! This gives me a better idea of what to expect and where to focus on my skill sets.
    21. Hello, I'm currently searching for additional talented and passionate members for our team that's creating a small horror game. Devil's Punishment Main Menu About the game: The game would be a small sci-fi/post-apocalyptic survival horror 3D game with FPS (First person shooter) mechanics and an original setting and story based in a book (which I'm writing) scene, where a group of prisoners are left behind in an abandoned underground facility. It would play similar to Dead Space combined with Penumbra and SCP: Secret Laboratory, with the option of playing solo or multiplayer. Engine that's being used to create the game: Unity About me: I'm a freelance music composer with more than 4 years of experience, have been part of a couple of game jams having the role not only of music composer but also as game designer and writer (Necroxeon and Solemn Pastures for the Ludum Dare) and have participated in a bunch of other projects. Now I'm currently leading the team that's creating this beautiful and horrifying game. I decided that making the book which I'm writing into a game would be really cool, and I got more motivated about doing so some time ago when I got a bunch of expensive Unity assets for a very low price. However, I researched about how to do things right in game development so I reduced the scope of it as much as I could, so that's why this game is really based in a scene of the book and not the entire thing. Also I'm currently learning how to use Unity and learning how to program. We're creating something new for the horror genre that's far from being your usual jump scare game. Our team right now consists of: Me (Game Designer, Creator, Music Composer, Writer), 3 3D Artists, 3 Game Programmers, 2 Concept Artists, 1 3D Animator, 1 Community Manager and 1 Writer. Who am I looking for: -Programmer: We are looking for a talented and passionate gameplay programmer that is familiar with the horror genre and has experience with C# and Unity. Having knowledge with random map generation, FPS, UI, Networking, github, AI, Inventory System mechanics is a plus. -3D Environment Artist: We are looking for a talented and passionate 3D Artist that is familiar with the horror genre and has experience with hard surface and the modeling of realistic high poly underground/closed environments. Right now the game is in late development and you can see more information about it and follow our progress in our game jolt page here: https://gamejolt.com/games/devilspunishment/391190 . We expect to finish some sort of prototype/demo in 2 months from now. This is a contract rev-share position If you are interested in joining, contributing or have questions about the project then let's talk. You can message me in Discord: world_creator#9524
    22. Hey guys, do you know how to fix this hexagon pattern on icosphere ? I'm sure that normals are calculated correctly per each faces. Is it because normals are not defined on edges ? See pic bellow for more details + source.
    23. Since my last entry, I've worked out the level design through six levels worth. During that time, I added a few more food types and features that I thought would add some variety to the game: Added cherries, oranges, and pears -- purely for variety. Added bananas, which make the snake shrink instead of grow. If the snake shrinks down to just a head and tail, it takes a small amount of damage. Added a new trigger for spawning food and danger items based on whether any part of the snake occupies a region on the map. Not representative of how many food items will actually spawn (I was just testing things out here), but here's some bananas! All of the various triggers, and the effects food have on the snake, are working out nicely I think. It makes for some fun game play, and fun moments with the sound triggers in the mix. I've been organizing the level design in "groups of 3" -- there's sort of a running theme for three levels, and then I try to change things up. The first three levels have relatively open maps, with an increasing number of barriers. Then things change at level 4, where the maps look at little more like the above -- long channels the player has to navigate through and around. At level 7, the maps will change again, etc. One thing I did come across when adding sound effects triggers though... It's entirely possible they will overlap. This doesn't work well if the intent is to have narration from some off-screen character, which is exactly what I'm doing. I can end up with the same character saying multiple lines simultaneously. So I'll be looking into how to deal with that before I release. I'm thinking triggered sounds should be placed in some kind of priority queue. After recording some of the dialog for the triggered sounds across several sessions, I realized I'll probably need to re-record all of in one go when the campaign is complete. My voice tends to change in timber slightly depending on the time of day, how I'm feeling, etc. I'm also considering whether to add the concept of "lives" into the mix. My original thinking was if you lose all your health, that's it -- the campaign would be over. Play testing has made me reconsider this. I'm also thinking it would be neat to give players another reason (besides just getting the highest score for bragging rights) to score points, by having some threshold at which the player gains an extra life.
    24. Olivier Girardot

      Music Fantasy Music !

      Hi there ! I usually share my sound design work here, but I also create fantasy music for video games and table top games such as Dungeons and Dragons. Here are 3 music tracks I recently uploaded to my Youtube channel. I hope you like them !
    25. EdBoon

      Fort Hero

      I've released a few games on Xbox but this is my first game I will be completing in 3D, which has been really fun. This game is meant to be a trainer for building games, the third person shooter ones that allow you to build walls, so it includes drills and strategy exercises to become a better player. The concept could be comparable to batting cages for baseball or shooting and ball handling drills in basketball, focusing on the competitive aspects of gaming. Info at fortherogame.com Skills Mode Gameplay: Fort Hero Gameplay Teaser Trailer: 
    26. JohnnyCode

      DX11 Memory leak in my DX11 program

      The leaks occur when you perform unauthorized access to a memory, not during allocating it. If the issue does not occur with WARP, you have quite well narrowed down the source code where you might perform the leak, that is DWM usage (or how it's called).
    27. I would recommend to delete the code, and write new code all by yourself instead. It's less fast than copying it from someone, but you will learn a lot about understanding problems and writing code, and you end up with code that you fully understand, and thus can debug. Doing that is a step in your development as a programmer. New programmers often have the idea that it is all about code. That is not the case, the real thing you're doing is to get an understanding of the problem that you have such that you can explain it to a baby in excruciating detail. That baby is very fast in doing computations and understands funny artificial languages only. The code is nothing. If you have the understanding, ie if you know how to explain it to a baby, you can literally reproduce that code in a few hours, or less depending on how fast you can type.
    28. The first thing that needs changing is to replace d3dx9t.lib with d3dx9.lib. I suspect you'll also need a new / recompiled version of the other libraries like lua.lib that are compatible with VS 2017's CRT. You also want to fix the compile error in worldserver.cpp, but it's hard to guess at what's wrong without seeing the code.
    29. Sorry if this is obvious, but is this your code, or is it from some other source? For me at least the code isn't displaying with consistent indentation, which makes it difficult to analyze. If the code is under your control, that might be worth taking a look at (maybe the code is like that to begin with, or maybe it's due to a mix of spaces and tabs, but in either case it should be fixable one way or another). It would also be helpful to identify the statement or statements that are causing the crash. I see some indexed array access, which could be an issue. Also, this may be tangential, but I'm a little skeptical of m_joystickValues storing Vector2d instances by pointer and allocating them dynamically (are they ever deleted?). That may or may not be related to the problem, but it's probably worth taking a look at regardless.
    30. HI! I’m looking for some help in creating a 3D Game Engine. I’ve developed in Unity and Unreal Engine. This project I started three years ago and I’ve finally come to face the fact of which I should have known better, I can’t do it alone! So nobody is getting paid for the until we release the engine, and I think its something that could be done just for fun. So the name of the game engine is called NecroTek3D. II originally coded it in Java but now I have come to realize Java is not powerful enough, it doesn’t give you enough control. So I’ve been going through he Graphics Gems series and trying to implement the content of those books. I have a Masters Degree in Computer Science from Drexel University with a concentration in Artificial Intelligence and Computer Graphics so I’m more than qualified. So some of the concepts that NecroTek3D uses. One is the option to use a Snap Camera. NecroTek3D is made so that gif the game designer wishes, the game can be completely played on a console controller or a pc/Mac. The snap camera allows for the typical mouse control. Instead of moving a mouse around, the Snap Camera switches focus to different things on the screen. Say, for example, you want to target an enemy, shoot him, and then go to your inventory. To do this you tap the4 analagon controller and cursor will mo ve from focus to focus to the enemy. Then you just use the shoot button and it fires at the enemy. Then with no enemies left, you move the analog cursor again to the menu icon and press enter. Once in the menu you can tap th eanalog stick to make various menu choices, Another integral concept behind NecroTek3D is the idea of hexagonal cells. Maps in NecroTek3D are adjacent hexagons. This is because a hexagon is the most optimum space. The side of each hexagon is the size of your field of view. Assume you are standing on one end of the hexagon facing the opposite end. The opposite end is the exact distance you can see. Surrounding the hexagon cell you are in are adjacent cells that are hot loaded . Every time you enter a new cell the surrounding cells are loaded and the old cells are taken out of memory. There are other features as well. Adaptive Skeletal Animation where one skeletal animation can be morphed and used for another skeletal animation. I did an independent study on this in my masters program. NecroTek3D is fully procedural if desired. From Procedural Textures, to Procedural foliage, to fractals, to Procedural Storyline Generation, to Procedural Maps and enemies,. NecroTek3D has massive library of algorithms, some from my own research, some from Graphics Gems, and some from just regular Computer Graphics books. And I need help to code these features. I can’t do it by myself I realized. The more help the better. -Ted
    31. And here we are again! With a bit of delay, here's this week's Weekly Updates post! Last week was quite light... So much so that there aren't any minor updates this time. Nevertheless, there's still a bit of new stuff, so let's cut the chase and get straight to the point! Elevator Upgrade First, elevators got a small upgrade. Previously, I've mentioned that I planned to have a little bit of music while using an elevator. Now it is done! This is 100% homemade too! I wanted to mix elevator music with a bit of funk. Frankly, I think it fits really well and I quite like the result. While the track is a short loop, I think it definitely screams elevator music! Here, take a listen! I suggest listening with good headphones! Challenge #8 And finally, here's the latest new challenge. This challenge consists of activating all toggle switches dispersed in two different rooms. Each toggle switch of one room changes things from the other. Therefore, players must go back and forth until every toggle switch is activated. Here is a small video showing everything ... Next Week Yesterday, I was mostly on the road, which allowed me to brainstorm a bit. I managed to cook 14 brand new challenges. In other words, I just make a whole lot to work on... There is a lot of very interesting challenges, to say the least, so it could take a lot of work... After all that, it's the usual suspects, as usual! So yeah, that's about it for this Weekly Update! See you next week!
    32. ▼ Watch the Devlog on YouTube ▼ ▲ Watch the Devlog on YouTube ▲ Hey everyone! I recently started the development of N.E.S.T, an action-packed, looter-shooter mobile game, and have been logging the progress through videos on YouTube every week! You can view the full playlist here. I would greatly appreciate if you could support the development of this game by subscribing to me on YouTube here, or by following me on itch.io here. Thanks for your time, and hope to see you all there!
    33. This is not a Game Design question. Moving to a more appropriate forum.
    34. gdb says I.m getting a segfault in InputHandler::update when I mive the joystick, is it that the if else and for loops in the function are not seperated correctly, where do I need to add or remove french braces? I'm a complete noob and I find nested if else and for loops really hard to debug so any help is greatly appreciated. Thanks InputHandler.cpp and all the other game engine files are included here https://drive.google.com/open?id=1o6nLpkkKs9aafBMv1Q3AXYEmX0a_YkAX
    35. Tape_Worm

      Gorgon Update #10

      This is a small update that addresses some bugs regarding state changes that come up in certain edge cases. These can lead to improper states being set, or older states taking precedence over new states. As usual, the new update can be retrieved from the GitHub releases page. The latest version at this time is Detailed information about what’s been fixed is available on the commit log for the release. View the full article
    36. ricvalerio

      NPC Scripting in my MMORPG

      Here's a short clip showing the NPC scripting. This is in reality an older video, and since then it improved with more features.
    37. a light breeze

      C++ C++ size_t for everything?

      I have to say, the idea of a computer that doesn't support addressing at 8-bit byte boundaries horrifies me.
    38. Thankyou for your reply Frob, Turns out i needed to have one of the SDK builds in Visual assist, so i reinstalled it and included all the windows SDK's. This is what fixed it, and you were right the problem was stated within the debugger.
    39. Yyanthire Studio


      Album for Moonrise
    40. Welcome to our thirtieth blog post! Where our normal blog posts have typically featured bosses and other various gameplay aspects, we think taking a step into our development process, particularly things that have been changing recently, would be a good idea. As such, here are some of the things we’ve changed and what we’ll likely be working towards next. --- First comes alterations done to our open world system- particularly as it relates to how our World Map generates. Originally, our node system was generated as described in one of our previous blogs. More info about that here. Now, we’ve gone ahead and fully reworked that original design. While the prior design definitely does work and get the job done, this new methodology will work significantly faster and add additional scalability (all that is left is we need to fix some of those very obvious rendering bugs!). The new code is based a lot more around math, specifically matrix multiplication. The end result always allows for a series of X nodes to be generated while still retaining ‘freedom’ from looking too much like a “spider web” (ie, crossing lines, as shown above). We’re now able to generate spawns more math dependent rather than Unity dependent, freeing us up from some of the raycast calls. --- Next, we’d like to talk about a few misc things, namely some Options Menu reworks and current things we’re developing towards. A few key things to note: our long-awaited resolution and fullscreen adjustments are finally in. They did not come without a few bugs, however. Which prompts a good programming lesson: while working with any sort of changing variable, be sure to always reference that true variable, don’t reference a copy of it. One of the bugs we had was that very, very old code would reference the screen resolution at the start of the game. What this means is that if the game was started in 1920x1080 but then changed to 1280x720, the game would still think we were in 1080 while we were actually in 720. This in turn messed up a very basic part of the game which is scrolling the camera (on instance in which you change your resolution). The fix is very easy- reference the Application’s screen resolution on each call. Simple things like that, had they been done all that time ago, would have saved us the time cost now both in discovery of the bug and resolution of it. Next key aspect is the FPS Cap: this is fairly important overall when it comes to weaker computers. Fragment’s Moonrise is a fairly resource-intensive game. There will be multiple Units on the screen at any given time, each firing off their very complex AI each frame. While we can get the game to run at a solid 60 FPS on modern computers, older computers will still chug. Testing the game on one of our laptops, we’d only get 40-50 FPS. While we will of course be optimizing as much of the code as we can at a later date, its still good to allow the Player to drop their FPS down to 30 as they desire. With capping FPS to 30, our weaker computer runs the game great. Our primary goal is to get this game to run on as many computers as possible; medium tier computers will run this without any problems. But we want the vast majority of computers in use by people today to at least achieve a solid 30 FPS and still be able to play and enjoy the game. Now, onto our next steps. RTS games in general feature a lot of buttons, and our game is no different. There are quite literally dozens of buttons to be used, and while our current hotkey scheme should suffice for the general population of right-handed players, hotkey alterations are still a must. So one of the areas we’ll be coding for is both the ability to rebind hotkeys alongside a comprehensive list of ALL hotkeys (both static and rebind-able) with a description listed so the player always knows exactly how things work at any given moment. --- Thank you for viewing our post! Support and interest for the project has been rapidly growing ever since we began posting here, and we're incredibly grateful for all the wonderful feedback so far! We hope this project interests you as much as we love developing for it, and please look forward to more updates coming in the very near future! If you’re brand new, consider checking out our trailer and overall description of the game here.
    41. Cyborcat

      Concept art for a remake of Abadox

      Yeah, Abadox is pretty hard core XD Too hard for me, to be honest. I could get to the final level when I was a kid, but couldn't beat it without an invincibility code--now I can't even get to Level 2 =P I always loved the look of it, the music, and the general concept, tho. I know I can make more changes and call the game something else, but I still want to attempt a legit remake. For now, the plan is to focus on the first level--which will be fairly short and partly a tutorial--and basically make a demo out of it. Then I can see about whether or not copyright issues would be a problem. If the copyright issues are too expensive or too much of a hassle, I can go back and make whatever changes are necessary and it wouldn't be that much more work. I feel like I'm in a similar boat as you. I did have a job at a video game company, but I don't have that much to show for it, since it was a poorly-run company and almost none of the work I did ended up in any finished games. There was one online Hot Wheels game where you needed a code from a toy package to play and another called Real War, which was a war strategy game that few people know about (tho the voice work was done by R. Lee Ermey, who I got to meet, so that was cool ^.^). And since then, I've been wanting to come back to making games in some way, particularly the Abadox idea, but I just never really committed to it until recently. Part of it is getting inspired by the indie game boom that seems to have happened fairly recently (or maybe I just didn't discover it until recently =P). I am also cursed with lack of time due to a full time job (which is partly why I took so long to respond--sorry 'bout that). I was a full-time YouTuber for a few years, but I eventually had to admit that I wasn't making enough money to justify it, so now I'm an office assistant who edits in her free time. I'm impressed that you have the drive to get up so early to get some programming in. I sometimes draw during my lunch break and I made a habit of doing live streams on Saturdays, which I turned into art streams, which is how a lot of the artwork I posted here got done. I also get up about an hour earlier than I need to in the morning, so I can usually squeeze in some video editing then. Anyway, what the hell, let's give this a shot! I understand that you're currently working on another project (best of luck, BTW!), and probably won't have time for this one immediately but that's fine. As you can see, I'm still in the planning stage, so it'll be awhile before I'll have something that's even ready to program or add music to. I am almost ready to start modeling these creatures and the main character--I've just got about three more drawings I want to finish first.
    42. Killocan

      My new game's comic book

      Good news, everyone! 🙂 I'm making a game that I intend to release the first semester next year. It's going to be a space shooter. The project is divided into three parts, two games(a mobile and a desktop one) and a board game, combined with comic books to tell the story. By now, the first game is in the first stages, but the first comic is finished, here it go: English: https://lightyeargameme.files.wordpress.com/2019/11/lightyear_en.pdf Brazilian Portuguese: https://lightyeargameme.files.wordpress.com/2019/11/lightyear_ptbr.pdf As soon as I have enough material to show as beta, i will start a proper project on the site. Instagram: @lightyeargame Thanks everyone!
    43. @Net-Ninja It already has it for quite a bit of time - (BeginDragDropSource, SetDragDropPayload, EndDragDropSource, BeginDragDropTarget, AcceptDragDropPayload and EndDragDropTarget - are the functions under ImGui namespace you want to look at). Previously I had to simulate those functions on my own. I'm using them to simulate drag & drop models into the scene, and also to drag & drop nodes within scenegraph. @Repixel And editor UI with ImGui for a game engine can look F.e. like this: Fig. 01 - Editor of my own game engine Of course it does support majority of features lots of other engines do (in-editor play/pause/stop of the scene, load/save of the scene, undo/redo, various components (note that actual components can be added on-demand)). The editor is just a project under the engine (although directly outputting executable file, it could technically be just a dll - as all of the projects do have same interface used for starting ... similar situation is for the components, while those I'm using are directly in engine core, you can add custom components as dlls as long as they follow the same interface), the runtime viewer is another project under the same engine (again outputting executable file directly). The same engine (and editor!) was used to build scene for small competition game here on GameDev.net - GROOM (shameless self-promotion): Fig. 02 - GROOM, a simple game built with this engine The game actually uses completely different renderer (instead of Direct3D 12 based one, it uses a custom real time path tracer written in OpenCL), different windowing system (it uses SOIL instead of native windows like the Editor uses). The rest is technically the same - scene management, resource loaders, physics & collision system, etc. Actually I have used the editor to put together the scene and set up components for each of the objects you can see in GROOM. EDIT: To demonstrate how actual engine, runtime or even GROOM looks like in terms of source (I tried to keep this short): class Main : public Engine::System { private: // Attributes for the application // ... public: // Engine system constructor Main(Engine::Log* log, Engine::Constants* options) : Engine::System("Main") { // Here we allocate everything we're going to need (resource managers, some subsystems like renderer, physics, etc.) // ... } // Engine system destructor virtual ~Main() { // Here we deallocate everything we have allocated (destroy resource managers, de-init subsystems like renderer, physics, etc.) // ... } // Scene, subsystems, etc. initialization virtual bool Init() { // For case of GROOM - here we load resources into managers, set up scenes, etc. // ... } // Scene, subsystems, etc. deinitialization virtual void Shutdown() { // For case of GROOM - here goes resource deinitialization, etc. // ... } // System update function virtual void Update() { // For case of GROOM - here goes actual game loop for given scene (there are 2 scenes - one for main menu, one for actual game level) // The actual loop here calls BVHs update and render, apart from actual game logic step // ... } // System event handlers void Handle(const Engine::Keyboard::KeyPressed& kp) { // Handle key pressed event // ... } // Other event handlers here // ... }; Now the actual application running this can be for example this (the most simple): int main() { Engine::Log* log = new Engine::Log(); log->AddOutput(new std::ofstream("Output.log"), Engine::Log::LOG_DEFAULT); Engine::Constants* options = new Engine::Constants(log, "Config.conf"); Engine::Input* input = new Engine::Input(); Main* m = new Main(log, options); Engine::Core::Instance()->Add(input); // Add other subsystems // ... Engine::Core::Instance()->SetLog(log); Engine::Core::Instance()->SetOptions(options); Engine::Core::Instance()->Run(); Engine::Core::Instance()->Dispose(); // Cleanup // ... delete input; delete options; delete log; return 0; } EDIT 2: Sorry for long post.
    44. MrRowl

      C++ how to calculate sine and cosine in c++ without STL

      One reason for avoiding the standard library implementations of things like sin/cos etc is that they're not guaranteed to give the same results independent of platform/compiler etc. If you implement them yourself using only IEEE 754 arithmetic on floats, or use a suitable library (e.g. fdlibm), and don't go overboard with your compiler's optimisation flags, you can write code that is 100% deterministic - it will produce the same output whatever computer you run it on, in debug/release, and whether you compile with MSVC, clang, gcc or whatever. For some applications that's really useful - especially any time you want to distribute simulations onto other computers, and be sure you can reproduce the results when they come back. Also, trying to track down the cause of tiny discrepancies in simulations can really improve your debugging skills!
    45. I decided to upgrade my source file from vs2003 to vs2017 which uses direct X as game engine. After compiling all the solution I encountered these problems. It says the library errors are ggsrvlib26_MT.lib, lua.lib, d3dx9dt.lib, dxerr9.lib, N4GamesLib4.lib.
    46. I need to make some clarifications about our open positions ... Our project is being made in Unreal Engine 4, some areas like sounds don't need UE4 experience ... others like the UMG or BP programming clearly need direct experience since they only exist within UE4. As for 3D artists it can go both ways. Our project currently does not currently have a lead/experienced 3D artists so while we would like to accept all levels of abilities, we currently do not have anyone available to assist newer artists. Also this project is going to life-like, AAA level of assets, so even more experience is need for that level too. We understand what position that puts us into, but we want to be open and honest.
    47. Last week
    48. Discovered I was calling it Unlerp in my code, think your name is better. Nice post
    49. These two video tutorials are awesome. I will rewrite my instruction later. For example, we want to add a cube on a scene: bpy.ops.mesh.primitive_cube_add() You can read about this API function in the documentation: primitive_cube_add Create a work folder with the name: mock-object-for-primitive_cube_add-api Open Blender and safe project in the work folder Open "Scripting" tab in Blender from the top menu Open your favourite Python editor. I use VSCode. You can read about how to use VSCode with Python here Python in Visual Studio Code Create a file with the name "main.py" in you favourite Python editor. This file must be placed in the "mock-object-for-primitive_cube_add-api" folder Write in the "main.py": print("hello from blender") You can run this code from command line terminal or from VSCode internal terminal. Press in VSCode "Ctrl+`" and enter command: python main.py You will see in the console terminal this message: If you opened "Scripting" tab in Blender you will see an ability to open Python script in Blender. Click on the "Open" Button in Blender Script editor inside Blender Choose the "main.py" file and click the "Open Text Block" button Open the Blender console terminal. For this you need to select in the main menu of Blender "Window" and select "Toggle System Console" Run the "main.py" script from Blender. For this you need to place your mouse pointer on text area and press "Alt+P" button You will see this message in the Blender console terminal: If you will change a code in an external editor like VSCode you need to reload in the Blender text editor. For this you need to press the "Alt+R+R" button You need to add only one file: "main.py" to the Blender text editor. Another files you need place in the work directory: "mock-object-for-primitive_cube_add-api" Copy this code to the "main.py" file: main.py import bpy import sys import os # Get a path to the directory with .blend file # There are the scripts in this directory dir = os.path.dirname(bpy.data.filepath) # Is the directory in the list with included # directories? If no, include the directory if not dir in sys.path: sys.path.append(dir) import object3d_service # Reload module. It is necessary if you use # external editor like VSCode # For reloading module you need to press in # Blender: Alt + R + R import importlib importlib.reload(object3d_service) # Note. You do not need to open all scripts in Blender, # you need only this script from object3d_service import Object3DService def main(): objectService = Object3DService() objectService.create_cube() if __name__ == "__main__": main() This is another files that you need to copy to the work directory: test_blender_service.py import unittest from unittest.mock import MagicMock from object3d_service import Object3DService class BlenderServiceTest(unittest.TestCase): def test_myTest(self): # Arrange object3DService = Object3DService() object3DService.blender_api.create_cube = MagicMock("create_cube") # Act object3DService.create_cube() # Assert object3DService.blender_api.create_cube.assert_called_once() object3d_service.py from blender_api import BlenderAPI class Object3DService: def __init__(self): self.blender_api = BlenderAPI() def create_cube(self): self.blender_api.create_cube() blender_api.py import bpy class BlenderAPI: def create_cube(self): bpy.ops.mesh.primitive_cube_add() Delete a default cube from the scene. Now you can reload Blender code editor ("Alt+R+R") and run the code ("Alt + P"). You will see that a new code will be created: You can set breakpoints in "main.py" because there are mock-object for Blender API. And you can run unit tests using this command: python -m unittest You will see that unit test are passed.
    50. hplus0603

      about microservice and microservices

      What you mean to say is that "blogged articles about back-end development all talk about microservices." To be able to be deployed separately, the services need to be coupled very tightly to their interfaces. E g, if service A changes its interface, every client of that service would break. I don't call this "loose coupling," even though perhaps the "make" command that builds service A versus service B may run in different code checkouts or whatever. There are a few things to unpack there. First: What pieces go into separate services? Generally, you want a piece that's developed together, and tested together, to be deployed together -- if the four people working on it (or one person working on it!) are sitting right next to each other and talk to each other all day, you don't need to have four separate services; coordinating the union of what they do into one service is often sufficient. Second: Once you have separate services, there's the question of "service discovery." Generally, this uses some form of DNS -- the client service makes a DNS request for "service X" and the orchestration fabric returns "that service runs on host Y on port Z." SRV records are good for this, although some systems just say "all services run on port P" and allocate one virtual IP per service instead. (Part of the name "service X" also implicitly means "implementing interface A over protocol B.") Third: Once you have the service discovery bit down, and set up some DNS service to answer the questions for service discovery, you need to figure out how to horizontally shard the services, assuming your load will be large enough that a single instance of the service will not be enough. You can use anything from DNS round-robin, to shared consensus systems (RAFT, Paxos,) to true stateless services with persistent data in network-attached RAM and storage (Memcached, Redis, various databases, etc.) Fourth: Once you have all of this working, you need some kind of networking fabric that can make sure that IP-based connections go to the right place. This is where various networking plugins like Flannel or high-level routers like Istio come in -- or just a simple set of haproxy or nginx servers where you simply map incoming requests to back-end nodes, without necessariy needing the containerization mechanisms. However, take a step back: Do you really need this? Microservices solve exactly one problem: The problem that you have more engineers working on a single application, than you can reasonably coordinate using simpler means. Thus, split your hundreds or thousands of engineers into smaller teams, each of which gets some defined resources (CPU, memory, database, networking, etc) and are told to solve specific problems (friends lists or new user flow or email reading or whatever) and publish an API/interface that they then have to stay true to for the foreseeable future. This adds tons of additional overhead in the management of development, and adds significant impediments to quick development, but is necessary to manage development at all for large organizations. If you have a small organization, all that extra orchestration and management will end up just sucking up time from your scarce development resources, and you're probably better off just writing one or two "main services" that "do the things." Defining interfaces, explicitly or implicitly, may still be a good idea -- almost every game or persistent service of note use some kind of IDL to define their packet data units and requests and sessions. The question is more what hurdles are in the way when you change something. If you can just re-compile everything that depends on the changed interface, and deploy them all in one swell foop, that'll let you move much faster than if you need to stay true to previous versions for some extended period of time.
    51. You cannot do fully deterministic physics with lock-step simulation, without delaying the action of client commands. You either extrapolate all other clients, and detect / correct when the extrapolation went wrong, or you delay the action of player commands until you've received all other client inputs for the same tick number. What GGPO does is re-play the entire physics for many frames for each input frame, which lets it "jump ahead" to the later results of some action a previous client sent. This works for fighting games, because: 1) Most discrepancies are hidden by wind-up animations, so the end result is that the other side sees less wind-up. 2) The simulation cost of a single frame is minuscule, so simulating, say, 10 frames, every frame you receive, is no big deal. If your game has the same characteristics, then that approach should work fine.
    52. Zurtan

      Golden Fall, RPG with no regrets.

      There is also a quick guide over here: https://computerrpg.com/golden-fallindie-rpg-quick-guide/
    53. A long ago, mortals waged war against the gods and managed to defeat them. Now, you’re the only celestial being alive and you have to bring mortals to extinction in order to survive. Key features: Nine continents. Stop mortal heroes before they get to your shrine to proceed to the next continent and reach your ultimate goal of destroying the heroes on all nine continents. Automatic turn-based battles. The heroes act on their own as well as friendly creatures. Growing difficulty. Each level is more challenging than the previous one and the death is permanent. Divine artifacts. Combine sparks of creation, pieces of the fallen gods’ powers, into various skill sets. Runic circle. Discover new runes to empower skill sets and sometimes dramatically change how the set works altogether. Remember the past. Find historian notes to recreate events from the past and turn the tide of battles. Ever-changing world. The world generates randomly each time you start a new match. Possible features: Book of Discoveries. Everything in the game has a story: from bosses to divine powers. These stories are not a part of the main gameplay, but with the Book of Discoveries you'll always be able to take a break from your divine deeds and read a few pages. Weather. Changing weather either helps the god or the heroes. It could be a healing rain for the heroes or a slowing blizzard for the god servants. Divine Trials. They create random conditions on each level to make them more challenging to complete. For example, the Trials may move a random god servant to a random hex each turn or buff the heroes near the sources of water. Kickstarter To finish the development, we started a Kickstarter campaign and we need your help to make it successful. To back the project, leave us a like ("Remind me" under "Back this project" on the campaign page) or just take a look please visit our Kickstarter page here. Thank you!
  • 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!