Jump to content
  • Advertisement

All Activity

This stream auto-updates     

  1. Past hour
  2. collocgame


    COLLOC is new type of puzzle game, and it has over 6 entire unique chapters and over 60 different challenging levels, come play and make the great fantasy world colorful again!
  3. Today
  4. GoliathForge

    white dragon finger paint

    they said, "hehehe hohohoho". One more "ho" for a warning point?
  5. Hello, everyone! I finished a piece of game, it is a first person shooter with different puppets, including 3 of my favorite tin puppets, so consider 6 months of intense graphics and listen, listen to this hymn of Iraqi youth, these Alladins of modern progress, while my puppet Modesto seeks for tea bowl and plucks a bit lapels of military tunic of Republican Guard. This part of game happens on Baalbek highlands not far from the ISIS hideouts of Lebanon. Game contains even the PUPPET of Saddam Hussein (time line 8:21-8:59) and thinks over the impact of changes. If you download the game, the third episode, (at the bootom, with password 'BAGHDAD') would be this most recent experience. While considering this eastern cultural event, spectator might also amuse himself while looking through my US refugee documentation at http://www.europique.com/ttbop2docume.... What else? Physically I am located in the US now. And thanks, only in 'Ask Leslie Moonves' project, on Vasily Zotov's game website: http://www.europique.com youtube: https://youtu.be/8r2M_D94cVo my theatrical also: https://youtu.be/J0YKfgUefVU Vasily Zotov
  6. Using atomic variables is very expensive. You don't want to synchronize more than once per tick per thread if you can avoid it. Typically, there will be double-buffering. The main thread will do something like: 1) wait for all client threads ready 2) flip readable thread input buffers 3) flip writable thread output buffers 4) tell threads to read previously written data 5) read thread inputs 6) simulate into new write buffers The client threads will do something like: 1) signal ready 2) wait for "go" 3) read from thread output buffers 4) write to thread input buffers 5) flip readable output buffers 6) flip writable input buffers Note that each thread, and the main function, have their own state of which buffer is "readable" and "writable." Because the section between 1 and 4 in the main thread is a critical section, it's actually possible to avoid that, and just use shared pointers -- main thread reads and writes from the halves that the client threads don't read/write during this particular tick. And, in case you're not familiar; "flipping" just means swapping between buffers A and B; typically updating a couple of pointers. // One side will read from readBuf() while the other side writes // to writeBuf(). When both sides are done, call flip(), and the // reader can now read new-produced data, and the writer can write // into the buffer that the reader just finished reading. Repeat // until game over! template<typename T> class Flipper { public: Flipper() : flip_(0) {} T const *readBuf() const { return buf_[flip_]; } T *writeBuf() const { return buf_[1-flip_]; } void flip() { flip_ = 1-flip_; } private: T buf_[2]; int flip_; }; struct ClientState { Vector3 position_; Vector3 velocity_; Quaternion orientation_; Quaternion spin_; int hitpoints_; int weapon_; int ammo_; int grenades_; }; struct GameState { ClientState clients_[MAX_PLAYERS]; }; Flipper<GameState> gameFlipper_; struct ClientInput { float move_; float turn_; float jump_; Quaternion aim_; bool fireWeapon_; bool throwGrenade_; bool cycleWeapon_; }; struct AllInputs { ClientInput inputs_[MAX_PLAYERS]; }; Flipper<AllInputs> allInputs_; Semaphore ready_; Semaphore clientsGo_; int numClients_; void mainThread() { ready_.wait(numClients_); gameFlipper_.flip(); allInputs_.flip(); clientsGo_.set(numClients_); auto inputs = allInputs_.readBuf().inputs_; auto oldState = gameFlipper_.readBuf().clients_; auto outputs = gameFlipper_.writeBuf().clients_; do_the_needful(inputs, oldState, outputs); } void clientThread(int clid) { ready_.set(1); clientsGo_.wait(1); auto readFrom = gameFlipper_.readBuf().clients_[clid]; auto writeTo = allInputs_.writeBuf().inputs_[clid]; do_client_things(readFrom, writeTo); }
  7. Yyanthire Studio


  8. Welcome to our sixth dev blog- Structure Overview and Research, part 2! In our third dev blog, we dove into our Structure system and provided an overview of the essential “RPG-like” elements of the game. Upon the very recent completion of our Research integration, all of what was considered ‘planned’ has now been finalized into the core of the game. We imagine these will undergo more modifications and additions as the game progress, but here is how they currently stand. If you missed our third blog post, Structure Overview check it out here: https://www.indiedb.com/games/moonrise/news/moonrise-dev-blog-3-structure-overview We will be continuing on from where we left off, what’s been put into the game, and so forth. --- Given that this project is a real-time strategy, we needed to focus our progression on not just one character, but the collective army as a whole. As you could imagine, this extends the possibilities into making something very unique, very quickly, by quite a considerable margin. --- The first, and most obvious thing we wanted to do is Stat Progression. This is fairly simple and straightforward- spend Resources to improve ALL of your Warrior’s health and mana. In a world where your warriors die quickly, and mana is something that should be greatly conserved, this should give you that extra edge to survive and fight longer. --- _ In addition, added survive-ability comes in the ways of regeneration. As, even if you have health and mana very high, it is still limited. Extra regenerative properties makes it that much more indefinite, and sometimes even completely necessary against all the evils of the land. --- _ Lastly comes damage. All the health, mana, and regeneration in the world means nothing if your target has the same properties. This damage modifier effects ALL of the spells any of your warriors can cast, greatly improving everything collectively. --- The next area to focus on are basic global elements necessary to function. This includes both Supply and Resource cap increases, making you able to store more Resources, and build an even bigger Army. --- Now onto the core- Being able to uniquely design your army is a fundamental part of Moonrise. As such, some of the personifying factors are things like… Class Advancement: While lower-tier Warriors are freely able to be drafted into the army, the strongest ones require something special. Not only do they have a high resource cost just to unlock, but they also require finding their special Tome hidden within the world (more on Tomes below). Something to note: we have essentially 9 different classes total at the moment, each uniquely different from one another at their core, and will be developed to be much more different from each other as the game progresses. Spell Unlocking: Similar to unlocking a Class, to further define each Class as a whole, you are allowed to unlock various new spells for said Class, thus defining them in even more detail. The costs will be high and irreversible, so choose wisely. Aura Unlocking: Wildly different from Spells, but at the same time still similar are Auras. Auras are effects that take place in an area around the user, typically applying status conditions to enemies or buffs to allies. Their effects apply passively, their essentially passive spellcasts. As with Spells, these, too, can be unlocked. It is important to note- you are never truly locked out of other pieces of content for your decisions. It is merely the high costs that force you to pick and choose what you can afford. In addition, the strict amount of allotted Warriors at your disposal forces a very well-tailored army. As you advance deeper into the game, you are able to unlock more, expanding your choices, until you reach the end game where the desired goal is to not only allow you, but also require you to use everything given to you to be able to progress. We feel this would give the most dynamic and interesting gameplay experience possible. --- Lastly, Tomes are the final thing to be talked about. Hinted at above with Class Advancement, Tomes are artifacts used to progress a Class even more. They can be attained anywhere from slaying powerful beasts, to discovering them in the arms of magnificent critters, or even gifted for aiding an important creature. The Tome is the core piece preventing Advancement, and once it has been acquired, the only thing left is to gather the Resources necessary to pay for such an advancement. Finding them is the true challenge, for they are never handed to you, only earned through venturing and experience. --- 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: https://www.indiedb.com/games/moonrise
  9. JTippetts

    white dragon finger paint

  10. Yesterday
  11. Michael Marchesan

    register subset of stl to angelscript

    Hi, is there any available prewritten code that focuses on bringing most common stl features to angelscript? I'm mostly thinking of template containers (list, vector, map, queue, stack, set ...), algorithm, string, possibly iterators. Did anyone do a comprehensive stl register .h/.cpp, is anyone working on it, or i'll be the one to do it? I whish not the last one because i found out about angelscript right now...
  12. conditi0n

    Need pathfinding idea feedback

    Are you referring to walkable areas/non-walkable areas within world space? certainly. you can store every walkable tile as an index in a hash table. or, you can create a navigation mesh out of a collection of tiles and assume they're walkable, then store them all in a hash table (which might be a bit harder to do - a graph might be better for this). my point is that, to render these things, using a 2d camera system, and to calculate collision, and do calculations of the entities that are "upstairs" or "downstairs", and calculate whatever other procedural elements you have in your world. you are not going to want to create several height-layers to such a large world without custom culling code that has to remove the other layers, when you can simply remove them yourself using a level system.
  13. Hey guys hope you're all doing well New to this group and decided to join due to lack of motivation to work on side projects by myself. I got a comp sci degree, 2 years of coding/game dev experience in Unity and 1 year proffesional experience in mobile dev for both Android and IOS in my current job. I would be glad to work on 2D, preferably small scope projects just so we're more confident we can bring it to a nice finish. Unfortunately, I dont have a formal portfolio but I'm leaving below a) A Unity game I completed by myself from start to finish (worked on game/level design, animations, some graphics, coding, promo, publication) and b) a demo of my uni dissertation where I worked on the mechanics of the game and integration of the vr functionality and motion detection algorithm. a) https://play.google.com/store/apps/details?id=com.OneMinuteGames.BallBros&hl=en b) If there are any teams out there looking for help with their 2d games drop me a message. Thanks for reading (and watching) guys, happy devving!
  14. jakeplow

    white dragon finger paint

    you have not seen this code in action, there isn't anything like it anywhere ,not even close after you start it up you type c for one dimention and for drawing on the next temple with respect to 0.00 type a z x as needed all drawing done with mouse all code is glut and opengl compatble and was code on visual c ansi style you can create a movable world of stars all in 3D what i wanted to do is create a game where triangler star ships that battle as they mov in a big figure 8 and they shoot as they go, it would take a while to get used to it but code can be added that can handle steering also thx for the tips all my best to ya :> james says peace Y out by the way none of your code runs in any kind of compiler not to mention you don't direct the person to what it was coded on for compiler, see everyone got eyes hehehe hohohoho
  15. Hello guys! I'm programming with a friend a basic 2d videogame with C++ and SFML. We're using a very basic main-thread in the server that updates every entity etc., and one thread per client that handles the communication with tcpsockets. However, when I tried to program a multiplayer game in the past, I encountered a common problem with multithreading: my client thread tried to read a main thread variable (like a coordinate) while it was modifying it/deleting it, resulting in a SIGSEGV. In the past, I've resolved this using a list of game snapshots and atomic variables, every time the main thread updated the game it was pushed in a game_snapshot list, creating a list of "game states", the client had just to take the head of the list, convert and send it, while the main thread deleted all the object behind the 100th node (only if one client-thread was not using it). Is that method correct? We're not currently right now thinking to change the "communication method" (like changing the main thread and one thread per client for something more efficient like async multiplexing), since this is a very basic project done to learn game dev in c++, but the "snapshot method" seems pretty inefficient to me. 100 instances of the same game seems pretty heavy to me. P.s. No, mutex is not a solution. If a client lags and blocks the access to the game, the game freezes for every one. Same if the client has, for example, 1000+ clients, with every thread trying to mute the variables of the main thread. We're obviously never getting to have more han 4 clients, but this project has been created to learn the basics. Thanks you so much! Sorry for any spelling mistake, I'm not really good in English :-(
  16. This answer helped me a lot!!! Thanks!
  17. Somehow, but most of the substeps can run in parallel and you can also have multiple pipelines being executed at the same time. Imagine rendering a triangle. It consists of 3 vertices. Transforming each of them to screen space in a vertex shader can be done in parallel since they don't depend on each other. After they have been placed, the rasterizer figures out, how many pixels on the screen are affected by the new triangle. This can only be done if all vertex shaders have run. For each pixel, a fragment shader is started, also in parallel. Of course, the fragment shader of the current triangle can only be executed after its vertex shader, but usually, you have more than one triangle to render, so while the fragment shader of your first triangle is executed, there might be some other triangles vertex and fragment shaders, that are also executed at the same time. Yep, they are great. Can't wait until the author finishes ihisVulkan tutorials
  18. Yes, each single pipeline stage can only work on the data of the previous stage, but there are thousands of pipelines running in parallel. Embarrassing, isn't it ? 🙂 Edit: oh, by the way, those tutorials you linked really helped me a lot.
  19. a light breeze

    Game initialization.

    Yes, static variables that are never constructed are also never deconstructed - but in that case, the variable doesn't really "exist" (i.e. have a lifetime) at all, so my short statement is still basically correct. The rules for determining which static variables actually get constructed, in which order and at which point in the program, are actually quite complicated with lots of special cases to consider.
  20. GoliathForge

    The 3D book

    Looking pretty sweet in here
  21. Nypyren

    Unity Highscore SAVE

    Unless you have a very specific reason not to, you should put your PlayerPrefs.Save calls AFTER the SetFloat calls.
  22. This is the absolute worst book I have ever read about game dev. Had I not found the thread below, I would have quit programming altogether. (I was just learning) https://cboard.cprogramming.com/cplusplus-programming/160170-sdl-image-want-load-because-following-code.html Start reading from post 10 and pay attention to all posts by Alpo. Thanks Alpo if you ever read this!!!
  23. Hello! I'm reading these tutorials and in some point it says: I'm confused here. How can each step require the output of the previous step as it's input but they can also run in parallel? I mean, while the vertex shader is running how can the fragment shader for example run at the same time? It must wait until all the previous steps in the pipeline has finished in order to to get the input from the rasterizer and then run. Does he mean that each pipeline process can run in parallel but each process must finish in a linear way step by step? This is the only that make sense to me. Until now I was imagining that each draw call is actually instantiating a new pipeline process and each of these processes can run in parallel. Also I was imagining gl draw calls (like glDrawElements() ) like non blocking calls. So which one is the truth? Thank you
  24. I want to save the highest time and spend it, but somehow only the time before that is saved and spent. Maybe someone can help me?
  25. LorenzoGatti

    Need a review of design idea

    A sound but possibly limited puzzle type. I recommend Separating an initial tutorial with explanations from the "actual" challenging levels. The initial impact is that if a snake game is not realtime it must have challenging puzzles; easy levels are "puzzling". Adding enemies to avoid, hunt, or herd into doing something. and interesting items Adding various snake actions with command keys, like laying eggs (which could reduce snake length but create a target for monsters), spitting at or biting other creatures, activating or dropping items. In a significant portion of the puzzles, nontrivially different solutions Nicer graphics, Even Pacman is more detailed. An undo command to reduce boredom, and a redo command to use it without anxiety.
  26. Hi! I am sound designer / foley artist. If you need any audio for the game I am more than happy to help you. You will find my portfolio attatched to the signature. Thanks!
  27. From a short check, in order to inherit methods, they must be declared virtual in the base class. Also, class Player is declared in GameObject.h as well as in Player.h. Declarations may only occur once. Outline: #pragma once class GameObject { private: ....... protected: virtual void draw(); } class Player : protected GameObject { private: ........ public: virtual void draw() override; } Edit: and i suggest to exchange the compiler switch -fpermissive with -Wall. Allways good to know where there might be potential problems in the code.
  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!