Jump to content
  • Advertisement

Search the Community

Showing results for tags 'Gameplay'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • Audio
    • Music and Sound FX
  • Business
    • Business and Law
    • Career Development
    • Production and Management
  • Game Design
    • Game Design and Theory
    • Writing for Games
    • UX for Games
  • Industry
    • Interviews
    • Event Coverage
  • Programming
    • Artificial Intelligence
    • General and Gameplay Programming
    • Graphics and GPU Programming
    • Engines and Middleware
    • Math and Physics
    • Networking and Multiplayer
  • Visual Arts
  • Archive

Categories

  • Audio
  • Visual Arts
  • Programming
  • Writing

Categories

  • Game Dev Loadout
  • Game Dev Unchained

Categories

  • Game Developers Conference
    • GDC 2017
    • GDC 2018
  • Power-Up Digital Games Conference
    • PDGC I: Words of Wisdom
    • PDGC II: The Devs Strike Back
    • PDGC III: Syntax Error

Forums

  • Audio
    • Music and Sound FX
  • Business
    • Games Career Development
    • Production and Management
    • Games Business and Law
  • Game Design
    • Game Design and Theory
    • Writing for Games
  • Programming
    • Artificial Intelligence
    • Engines and Middleware
    • General and Gameplay Programming
    • Graphics and GPU Programming
    • Math and Physics
    • Networking and Multiplayer
  • Visual Arts
    • 2D and 3D Art
    • Critique and Feedback
  • Community
    • GameDev Challenges
    • GDNet+ Member Forum
    • GDNet Lounge
    • GDNet Comments, Suggestions, and Ideas
    • Coding Horrors
    • Your Announcements
    • Hobby Project Classifieds
    • Indie Showcase
    • Article Writing
  • Affiliates
    • NeHe Productions
    • AngelCode
  • Topical
    • Virtual and Augmented Reality
    • News
  • Workshops
    • C# Workshop
    • CPP Workshop
    • Freehand Drawing Workshop
    • Hands-On Interactive Game Development
    • SICP Workshop
    • XNA 4.0 Workshop
  • Archive
    • Topical
    • Affiliates
    • Contests
    • Technical
  • GameDev Challenges's Topics
  • For Beginners's Forum

Calendars

  • Community Calendar
  • Games Industry Events
  • Game Jams
  • GameDev Challenges's Schedule

Blogs

There are no results to display.

There are no results to display.

Product Groups

  • Advertisements
  • GameDev Gear

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


Website


Role


Twitter


Github


Twitch


Steam

Found 484 results

  1. I'm wondering if anyone has encountered this, or found a way to resolve it. I'm working on a FPS prototype in Unreal Engine 4 that allows a character to shrink down to the size of a dust-mite. The character starts slightly oversized, at 3.0 uniform; however, when shrinking, it seems like anything past 0.1 has no effect. It doesnt seem like I can shrink the characters perspective past that, even though I'm "technically" shrinking to 0.01 and even as far as 0.001. No difference. Now, from a third person perspective, I can get an NPC to shrink right down and out of site if need be.. I'm thinking it may be some limitation with the camera. Can anyone think of any ideas to solve this, without starting with a word at a much much larger scale? Thanks in advance, -Evan
  2. Hello guys, Not sure if this is the right forum, but I'll post it anyway. I have recently started working on a game which I was originally planning for a PC (using unity). The game is an orthographic top-down run and gun and heavily relies on movement controls. Now due to budget limitations I am thinking about going mobile first. However, when I started investigating the development of the on-screen joystick for a mobile game, I found it extremely poor, annoying and limited. I tried several "classic" sega ports and they were extremely difficult and frustrating to control (especially remembering that I played these classics as a kid and never got frustrated). Is this simply a bad example of the joystick? Are there any good games which I can look at as an example? Or is this really as good as it gets for touchscreen devices?
  3. Dialogue systems suck. I hate them. I have been working on one for a project and it is just so frustrating! I finally got it just barely working, but it's the most hacked together bullshit dialogue system possible and I don't even really understand how it works. I'm just glad I can forget about it for a while, and work on the rest of the game.
  4. Hi everybody, Xilvan Design building 3D games since 2004 in Blitz3D, we now present you our kindly official gaming related pages. (please click on each links, download games & bookmark the pages): Lights of Dreams IV: Far Above the Clouds v10.37. Candy World II: Another Golden Bones v10.37. Candy Racing Cup: The Lillians Rallies v3.57. Candy World Adventures IV: The Mirages of Starfield v7.97. Candy to the Rescue IV: The Scepter of Thunders v8.07. Candy's Space Adventures: The Messages from the Lillians v18.37. Candy's Space Mysteries II: New Mission on the earth-likes Planets v8.75. New Xilvan Design Websites. Xilvan Design's Youtube Channel. Friendly, Alexandre L., Xilvan Design.
  5. I was tying to figure out what to do with my procedural planets and for an initial step and I wanted to fly a spacecraft in and establish a low orbit around my world starting from some distant point and initial velocity. I know how to set up the gravity and I think I can pretty much do manual controls that will simulate Newtonian physics. However what I'm looking for is some software or algorithms that let me establish the orbit by controlling thrust in the right direction at the appropriate points in a trip towards the planet. So I guess the software would accept something like starting position, starting velocity, desired orbit height (I'm assuming circular for now) , and desired orbit plane. From there it would give me firing points, duration and trust vectors needed to for the orbit. To make things simpler I'm assuming infinite fuel. I figure NASA must do stuff like this all the time but I haven't been able to find something solid on how it's done. Perhaps it's too complex, I'm not really sure, but I thought I throw the question out there anyway.
  6. Hi guys! Our first game (Dongo Adventure) has just been released on Steam! I hope you have fun with the game! O/ The game was produced by me and my brother for 11 months. We did everything with free and open source software (Blender 3D and Gimp). About the game: The game is 3D Platform style, inspired by the classic platform games (mainly 'Donkey Kong Country 2'), bringing all those challenges and fun of the genre. Thank you all for the support! Steam Game Page: http://store.steampowered.com/app/811450/Dongo_Adventure/ Official Trailer:
  7. Hey, nice seeing you again! I can safely say that this update is packing quite a punch, so let's get right to it! Patching up holes First, I want to talk about navigation meshes. Previously, only the procedurally generated floors were included in the navmesh baking process. This meant that all special rooms (aside for landfills and gyms) were completely inaccessible for any NPCs. This was due to two issues. The first one was simply that the navmesh baker only looked for the generated floor rather than any walkable surface. In Unity, it was just a matter of changing things a bit to use a bound box rather than checking in the object's hierarchy. The other issue was the way the floor was generated... Previously, most special rooms using static assets had floors that only covers the room itself, without counting the actual connective gap between it and the rest of the rooms. Because the floors were generated using marching squares, that connection's floor turns into an awkwardly shaped triangle, and thus created two small triangular holes. The problem was fixed by simply adding another square of the floor after that connective square. With these two solutions, NPCs are now able to enter and navigate special rooms, so there's no escape now! New Relics and capacities Next, there's now a lot of newly implemented capacities (and thus relics). Backup Floppy Capacities This relic comes with the Second Chance capacity Second Chance When the player is about to die, then they instantaneously regain 25% of their health. This capacity can only be used once. You can, however, have that capacity many times and thus have multiple chances. Stats Bonuses DEF -35% HP -25% Beach Ball Capacities This relics only has one capacity: Double Jump. Double Jump This capacity is self-explanatory: You can now jump again in mid-air. Stats Bonuses AGL -12% Concentrated ATK Juice Capacities This relics comes with two capacities: Slow Attack and Charge Up Slow Attack This capacity simply slows down the attack speed. It also influences the charging times of chargeable weapons (like bows). This capacity can also be applied multiple times, meaning that attacks get slower and slower the more Slow Attack capacities you have. Charge Up This capacity lends to the wearer the capacity to charge attacks with swingable weapons like swords. A charged attack will have a somewhat substantial damage bonus depending on how long the player held the attack button. Quite useful to deal with stronger enemies! Stats Bonuses ATK +25% AGL -10% Echo Drop Capacities This relic only got one capacity: Shockwave. Shockwave With this capacity, the entity can generate a shockwave when they attack if they're lucky. This makes any enemies in a small radius take damage no matter if they're hidden or not Stats Bonuses DEF -29% Electronic Mask Capacities This relic comes with two capacities: See Enemy Health and Clairvoyance. See Enemy Health This capacity is quite self-explanatory. It gives the player the ability to see any targeted enemy's current health. Quite handy for planning attacks! Clairvoyance This capacity helps the player find their way by rendering a nice glowing path to the exit. The path actually gets refreshed every 5 seconds, and there's even a nice fade-out. Here's a picture of that path As you can see it's really AESTHETIC. The colours of that path are picked from our palette, meaning that it changes colours depending on the current level. Stats Bonuses DEF + 5% HP -20% Fan Of Violence Capacities This relic lends two capacities: Corrosive Spead and Enflamer Corrosive Spead This capacity makes any killed enemies drop a puddle of poisonous blood. If another enemy walks on it they instantaneously become poisoned (if they don't have any other status effect that is). The puddle dries up after a while. As of now, there's no actual damaged dealt directly to enemies when they stand on a puddle. This might an idea for later, though. Enflamer This capacity is quite easy to understand: you now deal fire damages and have a chance to give the burning status to any attacked entities. Stats Bonuses ATK +5% HP -5% Flying Shoe Capacities This relic only got one capacity: Hover. Hover This capacity makes the entity able to glide for a short period of time after a jump. Simply press and hold the jump button to glide. After a bit, the glide will stop. You can also release the jump button during a glide to stop it. One would think that the Double Jump capacity would counteract with this one but one would be wrong: just hold the button down after the double jump. This paired with a ranged weapon will make a deadly combo. Stats Bonuses HP -5% New Activatable Item Next, I want to talk about a new activated Item: French Fried French Fried Alignment: Future Funk Description This is a rather funny looking moustached french fry wearing a beret and smoking a cigarette (Don't smoke, kids). This item can summon a seagull familiar that attacks any nearby enemies for a limited amount of time. Once the time runs out the seagull disappears. The player can have up to 3 seagulls at a time. there's also a cooldown before the item can be used again. Capacities Aside for its activatable ability, the Hover capacity is also given to the player as long as they hold the item. Stats Bonuses DEF -11% Headshots! I've previously thrown the idea around of having different damage bonuses if the player targets a specific body part with a projectile. I'm proud to say that the feature is now fully implemented. Now there's a 5x damage multiplier to projectile if they hit the head (for example). Although these bonuses exist, there's still a lot of balancing to do and whatnot. But I got to say that it's quite fun headshooting enemies with arrows (mainly because enemies aren't balanced yet). This works (of course) for any projectiles. Mouse Refactored There's also have been a big mouse control refactor. Previously, the mouse script I used wasn't as flexible as I originally thought. Rather than coding everything from the ground up, I've decided to cherry-pick code from Unity's standard Assets FirstPersonController script. I Initially wanted to fully use the controller, but there were some input delays with the Update and FixedUpdate functions. I decided to pick its MouseLook script and integrate it into my custom PlayerController. The results were night and day. Not only I could easily change the sensitivity, but there's even a "Smooth Mouse" function which interpolates mouse movements. Mouse Sensitivity Speaking of mouses, I've also added the ability to change the mouse sensitivity. This was made after many feedbacks of my playtesters, who were either unable to use the mouse properly or complained about an excessively sensitive mouse. The Mouse Sensitivity setting takes the form of two components: a slider and an input field. In essence, the input field is used to save the actual sensitivity, while the slider is just a more tactile way to set the sensitivity. Right now, changing the slider will update the input field, which in turns updates the mouse sensitivity. If the player wants an absurd sensitivity (like 100 or something), they can't use the slider for that (which only goes up to 20 right now) and instead have to manually input this in the input field. There's also another checkbox component controlling that previously mentioned "Smooth Mouse" mode. Pause Screen Option Tab Now there's an options tab in the pause menu: This is a quick way to change common settings such as volume slides and mouse sensitivity among other things. These work just like their Main Menu counterparts. Once the player closes the pause menu, options are automatically saved. Quite handy if you want to adjust your mouse sensitivity mid-game, or lowering volumes while streaming. Closed Rooms Previously, all rooms were open form the getgo. The player could technically speedrun their way through the game without breaking a sweat. This kinda made the game quite boring, as there weren't any valid reason to destroy every enemy in each room. This was in a dire need of change. So I've now implemented a linear progression system, in which the player needs to clear the room of any enemy before passing on. Of course, the player can break walls or enter special rooms anytime (mainly because these rooms are optional and won't provide any shortcuts at all), but in order to go to the next room, they need to clean the room first. The way this works is by having closed/opened doors (much like locked doors but without any type of locks). This makes the game feel more like a game, although there's still place for improvement. Minor Upgrades Fixed the MSAA artifact bugs It was quite simple: just use FXAA Technically I can also do TAA (Temporal Anti Aliasing), but this could be put in the options. Of course, there's a lot of other options, but right now FXAA does the job just fine There might be better options, or maybe an MSAA fix but this will wait. Added a looping testing sound effect when fiddling around with the Sound Effect volume slider This is for both the Main Menu's options screen and the Pause Menu Options tab. Fixed a lot of bugs, especially with destruction/creation Charging an attack now slow down the player Once the player unleashes its attack it resets Previously both the Quick and Slow Attack capacities only affected swing speeds. Now they also affect the charging rate. Added a touch of Ambient Occlusion I will probably put this in the options later on... Next Week Even with a cold doing its thing I'm still trying to be proactive and work on the game. In fact, yesterday I started working on a draft of a boss behaviour tree. Although still really rough and full of bugs I think I can have a working boss ready for next week. Afterwards, It'll be modelling time again, but this time it'll be level specific stuff. And after that, there's other relics, items, food, capacities and abilities that are left in the design document that needs to be implemented in the game, which means modelling, coding, designing and whatnot. But right now let's focus on bosses...
  8. Hello there. I'm not 100% sure this is the appropriate sub-forum but this question is probably more about programming than design. I'm making a game with some mechanics loosely inspired by Factorio (plays like Terraria) and since I want to allow the player to build massive machines and factories all the tilemap logic runs in the GPU and the map data stays there in the GPU memory since it's potentially several gigabytes. That implies in many constraints, especially because there's no recursion in compute and overall it's quite limited (I'm using direct compute SM5, OpenCL is too cringy, Sycl is still in its infancy, Cuda is vendor locked and there's no console support for these techs anyway). So here's the problem: I want electricity to play a role in the game mechanics. The simplest solution by far is just making it global and adding/removing from it as generators/consumers are ticked, but that's gonna suck terribly, so I've been thinking about decent solutions to that problem that still meet the technical constraints imposed. I thought about an electrified 'area' around the power generators and also power lines like Factorio (similar to Sim City). The problem is transmission, I'll have to calculate the electricity flow and that's not simple to perform in the GPU. What I could do is make a bitmask for each power network and then do a bfs on CPU and attribute an ID for each connected power network, then when I'm ticking the power generators and the consumers I get the ID of the power network (for that tile) and add/remove electricity from that network, so the electricity is stored in a value accessed through the ID for that map tile. One of the problems here is when power networks overlap in area but don't interconnect, I think in this case exclusion is acceptable (only one network can supply a tile), or just automatically connecting networks that intersect. The real problem though is the potentially catastrophic result of having too many networks. As I said this is a really massive game with possibly hundreds of millions of actively updating 'tiles', and since each network will require not only a bitmask but also an entry in some array that stores the electricity, the number of networks will have to be capped much before a quantity that's reasonable for the overall magnitude of the game. Maybe say 16 or something because passing data to GPU is very slow. So while it's entirely possible to simply arbitrarily limit the number of power networks in the game, that goes against the basic premise of it. Maybe you guys have another idea on how to handle that. The usual practices are already taken into account like for example using reduced maps for the power grid and such (2x2 or maybe even 4x4), but those aren't solutions. A 'solution' would be to pass an int32 for each power grid tile (holding the network ID) but that's prohibitive in terms of performance. It is possible to flood fill the networks iteratively in the GPU so no data has to be passed, but that would not only cause some delay in converging to the correct solution but would require double buffering and optimizations aren't going to be trivial, for a starter looping the whole map and allocating values for the worst case scenario could work, but optimizing that is going to be a major pain in the rear (especially compartmentalization) and definitely bug prone because it's a whole other layer dependent on the base map data that has do bee synced. So do you guys have any other idea on how that can be done?
  9. I am looking for suggestions on how the passage of time could be handled in a multiplayer RPG, particularly the ways a players could alter it. Most single player games allow the player to wait, sleep and/or fast travel, which causes their character to jump forward in time by a set amount to skip the boring parts. If this was allowed in a multiplayer game, players could become out of sync with each other. Does anyone have any suggestions on how this could be handled (other than not allowing those actions) in a game with 1 to 8 players?
  10. Hi folks,My name is Aydin. For a while, i'm developing a game by myself. My profession is actually illustration and animation. I'm just learning coding. So I have no idea how long the process will take. But I'm sure I can finish it. The main theme is the mysterious events that emerged in the 15th century Ottoman Empire. ( Yeg (Baba Yaga), gulyabani (ghoul), itbarak(werewolf), vampires, zombies and witches emerging in Constantiniye (aka İstanbul) etc.) You can review a 20-second preview at the link below. I am aware that there is not enough data to evaluate it yet.But, i'm glad to hear that what you're thinking about the first look and the idea.
  11. For my game, Forsaken Alchemy (FA for short), I've got a loot system that's pretty simplistic to start but doesn't get me anywhere. I wanted to get rid of the RNG loot drop trope I've seen so many times in games. Instead of relying on RNG Jesus, you get specific items from enemies by killing them a certain way, so you get what you earned 100%. For example, if you want some hair from this hairy enemy, that's not going to be there if you burn it to death, right? However, if you stab said enemy to death, you'd always be able to harvest its hair. I'm not putting equipment or money as loot because in FA, all the equipment you need is handed to you early on, and there's this Replicator item that lets you duplicate most objects, so there'd be no point in having a currency system, in my opinion, if you could just replicate items infinitely and sell them. Ok, I know for most RPG players out there, what I just said must sound shocking, but equipment in the game isn't like major stat modifying gear that's in Final Fantasy, Dragon Quest, any MMORPG out there, etc. You've got 3 sets of armor. Light, medium, and heavy. You can only equip up to 5 pieces from each set at a time. Light armor increases a stat called turn priority, which is one of two things that dictates who goes next in the turn order, but the trade-off is that you also take more damage. Heavy armor is the opposite, so you're slower but more defensive. Individual pieces of medium armor protect the character from debuffs. Each character has their unique, personal weapon, so there's no weapon upgrades out there. Accessories are also there for reducing damage taken of one element while increasing damage taken of another element as a trade-off. The only reason why I made equipment so simple is because I'd like minimalism to be one of the game's strong suits. Instead of having a hundred different armor pieces, accessories, and weapons that players collect throughout the game until finally getting gear that's completely superior to everything else, just give them all near the beginning, so they can experiment and learn what best fits the scenario, and there will be several situations where each piece of equipment is useful, so none will be forgettable. As far as why you have a Replicator that duplicates most items, I have that to remove the need to grind/farm for items that'll be necessary for a lot of alchemy recipes to make battle items. It'll be balanced by having a strict space and weight limit per item per character, and the Replicator can't be used in battles. Also, everyone automatically gets healed after every battle, so there'd be no reason to replicate healing items to use over and over again outside of battle. I didn't want that to be a chore for players to constantly make new healing items right before using them after fights. Anyway, now that you know why equipment and money aren't part of the loot system, and we're only getting enemy-related items, like that hair I mentioned at the beginning, where to go from here? I was thinking of having that be a completionist hunt for all the different types of loot, but then, what would be the purpose of doing that? Maybe have an optional cosmetics thing that uses loot? I don't wanna say I've written myself in a corner because I'm sure there's a viable answer out there that doesn't remove what I've already laid down. Before you say, "Make quests that revolve around getting enemy-dropped items, so you kill enemies in specific ways to get said items," I'm not going to do that. That's just a twist on the trope of "Kill this enemy to get this item" that we see in so many games. Besides, even if I do make quests about that, what would be the reward for the player? I just talked about the lack of need for new equipment and money. The sidequests I do make for FA will have character relationship development rewards, and no, I won't make kill quests give that reward because that kind of thing is meant for sidequests that have a mystery conflict the player has to solve through gathering evidence and piecing them together alongside certain characters. Before you say, "Make each loot item be an optional ingredient to make alchemy recipes stronger," I thought of that already, and I don't want players to think, "Look, a new enemy! Time to get all the different loot and see what they do to make alchemy stronger than usual." The reason why not is because, even though this is an RPG and RPGs usually have you kill a ton of random enemies to get leveled up in preparation for bosses, I'm not doing that. I'm giving the player alternate paths around random enemies, so it'd be possible to go boss to boss, and level ups aren't beneficial since enemies will level up with you. In fact, I made level ups more of an extra challenge for those that think the game's too easy. Of course I'll throw in a warning in-game, so players don't accidentally make their playthrough harder. That's not to say you should avoid all random enemies because I made it possible to still beat them but not get exp while getting all the different types of loot. The reason why random enemies are even a thing is learning practice for bosses since I have a very adaptive A.I. per enemy type, so players are always learning to train their responsiveness.
  12. Snow Ash Land A 2D multiplayer top down shooter Social - MMoRpg - Pvp - Craft - Build Hello everyone, this is my first post here, I'm happy to present you today my video games "snow ash land " , I worked hard for more than 3 years to get there, but today in the mass of games, it's difficult to get out of the mass, so I would have liked to find a nice person to join our discord and community. The game is already very advanced and will be finished within 6 months maximum ,it is already on steam ,in demo and early access ,we all appreciate constructive feedback ,and hope tohave attracted your curiosity Snow Ash Land is a multiplayer post-apocalyptic top-down shooter game with rpg mechanics and survival in a semi-open world. It simulates a reborn society in a post-apocalyptic world. Guided by factions with very different ideologies, the player can choose to help rebuild civilization or destroy humanity. There's a lot of interractions between players in multiplayer mode : Guilds, pvp territory wars, resources and information exchanges, language, politics, economy, building... STEAM :https://store.steampowered.com/app/977670/Snow_Ash_Land/ DISCORD : https://discord.gg/3j6e33kWebsite: https://snowashland.webnode.fr/
  13. jb-dev

    The Almighty Mini Map

    From the album: Vaporwave Roguelite

    I've recently added a mini map on the right upper corner of the screen. With this the player can now see in which room it's currently in. That mini map get updated when the player moves to another room. In the future most rooms will be hidden until the player discovers it by either moving to a new room or, in the case of hidden rooms break a breakable wall or open the locked door.
  14. I am happy to announce that we release the fourth demo of Rail Route! We intended it to demonstrate how campaign mode works. You will find yourself operating a small tranquil rail network, facing the challenge to expand it to a vivid center of transportation. What is New Almost everything! Except rails, trains, contracts and basic map layout (Prague, again). From the beginning, you will control manual switches and semaphores. You can expand your network by buying platforms and building rails, but you have to research the control room upgrades to operate more stations. Automated semaphores are helpful component indeed and you can use them after you research and buy them. Read more information on our website: https://railroute.bitrich.info/2018/11/23/demo-r0-4-released-from-the-beginnings/ Feedback We deserve your feedback! We would like to steer the game development according to gamer’s needs so we decided to grant a life-time license to end product to everybody who helpfully answers these questions (either by a comment or via e-mail): How much time did you spend playing the game? Which stations did you connect to your network (except Bubny, Dejvice, Docks)? Did you find the game play intuitive from the beginning? Have you had any problems with the understanding of what’s going on? Was it intuitive to you how to receive the incoming trains? Why not? Was it intuitive to control the switches and semaphores? If not, why? Was it intuitive how contracts work? If not, why? Was it intuitive how research works? If not, why? Was it intuitive how building / buying works? If not, why? What did you like the least? What did you like the most? Do you have any idea what we should definitely add into the game? Don't miss this opportunity!
  15. Hello, The current questionable design: I have lava that kills the player when it hits it. The logic to play the death explosion is in the object the player hits. When I did this I was influenced by what I read about Sims object design. By placing the logic in the object it's easy to add more objects with different logic. The downside is that responses are distributed in all the objects. The upside is that I don't have to write code for handling damage events and responses, and mapping damage types to death animations etc. I do feel this would be inappropriate for things like projectiles, and enemy attacks. However because the object it hits is Static I figured it'd be ok. The Ask: So, what are your thoughts and what would you consider a good design?
  16. Hi there, and welcome to this very special weekly update! Yes indeed, this one can be special. Everything about this update is related in one form or another to death. As you may or may not know death (or the capacity for a player to lose) can be an important part of any game. It can take many forms but in our case, it's a typical death. So without any further ados, let's dive right into it! Weapons and View models One of the most striking updates I've made was to weapons, or more precisely how the player uses weapons. Previously attacks, in general, were mainly governed by actual skeletal animations (i.e. the actual world model of the player) This meant that when a player swings a weapon the attack would be oriented not to the head of the player but to its body. One adverse effect of this is that the player couldn't aim up or down. Now, I've introduced view models to the game. For those who didn't know, view models are 3D models that only appear on the player view. (Think of it like gun models in Frist Person Shooters) These make it really easy to align attack not to the actual world model but to the view. This is especially useful to fix our up/down aiming problems. swings.mp4 Of course, this meant that a big refactor was in order but I think it makes the game much more enjoyable. Another effect of this change is that guns and other aiming weapons now have their own animations, meaning that they are now actually aiming at the crosshair in the middle of the screen. There's also a unique melee attack animation for these too. swingAim.mp4 Charging Weapons Previously, changing weapons such as the Bow didn't have any visual indicator of how much tense the bow was. Although this could have been fixed with animations, I didn't rig any weapons as of now. Paired this with the view models refactor and it wasn't really wise to immediately embark on such adventure. To fix this I've decided to add a nice charging bar that shows how much power a charged attack will have. There's even a nice gradient and everything. chargeBar.mp4 Projectiles and compound colliders Previously there was no actual difference between melee and ranged attacks. Both used the same colliders and did the same damage. However, now this has changed. Projectiles are now testing their hits based on a completely different set of hitboxes that are spread all over the model, one for each body part. This makes hit detection react realistically. It also means that, in case of arrows, we can stick the arrow to a particular body part and make the former follow the latter in a realistic manner. gettingShot.mp4 There could be a damage bonus in the future but at the moment it's not a priority. Aside from that, there's another benefit of using compound colliders: rigid bodies. When the player attacks using a projectile and make a lethal strike, the game can then apply a given force to the rigid body that was hit, making ragdolls behave more realistically than ever before. Death And finally, here's the best part: our own mortality. Yes, now players can experience the full thing. When their health drops down to zero, players simply die in a flamboyant way by using ragdolls. When they die, the camera is transferred to a ragdoll and a sad jingle is played. death.mp4 Death Popup After the jingle ends a nice death popup shows up and the player has three different options. Retry This options simply reuses the same run configs (aside from the seed which is regenerated) and start a new one. Main Menu This options boots back the player to the main menu. From there the player can load a new save file and start a new run with a different character and seed. Exit This is quite simple: it ends the game and closes the app. Popup Text The popup itself has dynamic texts that changes based on how powerful the last blow was. In the future, there might be different types of damages leading to different types of texts. We might even change the text based on what killed the player, to begin with. That's about it for death. Minor Updates Fixed many bugs related to enemies. Refactored almost everything. Every C# events were replaced by UnityEvents. Although their implementation isn't actually any better than the native one this gives us the ability to edit events directly in the Unity Editor. It can also give us the ability to change which type of collections are used to store every observer. More optimization opportunities, yay! Added a bunch of extension methods (That thing is OP, to be honest) Removed a bunch of unused codes and whatnot. Reduced muzzle flashes. This could have been hazardous for epileptic people. Added a nice keyboard (?) model. Fixed bugs whit the analog blur effect dishing out unclamped colour values, resulting in strange dark lines artifacts. Added a death plane at the bottom of levels. This means that pesky player that found their way out will suffer the consequences. 😈 fallDeath.mp4 Fixed bugs with the character selector highlighting the wrong character when switching screens. Changed some sounds and added a bunch of new ones. Next week Next week will probably a continuation of the cleaning process. Afterwards, it's boss time! I've also started to read this book on game design, so there might be some unplanned edits here and there, too.
  17. Hi All,We're Unsigned Double Collective, a small team from South Africa about to launch a Kickstarter campaign for our debut title: Freja and the False Prophecy, a 2D platform adventure set in the world of Norse Mythology with an emphasis on combat and narrative. Check out our cinematic teaser trailer: And some gameplay: We're launching our Kickstarter campaign with full trailer and playable demo on the 1st December!For more information subscribe to our mailing list at: http://www.thefrejagame.comOr follow us on social:Facebook: https://www.facebook.com/thefrejagameTwitter: https://twitter.com/thefrejagameInstagram: @thefrejagameDiscord: https://discord.gg/5jnUQJHThanks!-Frank
  18. Awoken

    Dynamic Asset Progress

    Hello, I'm in the middle of creating what I call dynamic assets. The hope is that when fully incorporated into the project a player will be able to create their own buildings, monuments, bridges, and city walls with this tool. I want it to be user friendly. Importantly, once the user has 'designed' their unique structure I want the functions to be able to pop out the needed collision geometry so that the world's Simulin can interact with it as a player would expect it to. Examples of this would be Simulin travelling through door-ways and up stairs and walking around walls and over bridges. The past three weeks has been a seesaw of conflicting interests. If I make the dynamic asset tool too user friendly where sky is pretty much the limit it would be a nightmare trying to come up with the necessary algorithms to try and generate the necessary collision geometry. If I make the tool too rigid then the appeal I'm going for ( enticing players with this tool ) will become lost after a few sessions working with the tool because it'll be outed as a fraud tool. The Ooooos and Ahhhhs turn into pfffts. I'm giving it a shot because this last tool, dynamic assets, will be the icing on my framework cake and will bring together all the functionality I've been working on. I'll be updating my progress regarding dynamic assets in this blog post. As of today I've been working on allowing the user to place foundation blocks, what Simulin will walk on, into the game world and have the server generate the necessary collision geometry using the same technique I'm using for navigating Simulin around the world. Nodes and collision faces between nodes. I'm posting a video of the progress so far, it shows two clients, one client is making the foundations, the other is strictly viewing the resulting collision geometry generation. For the most part a user can become very creative in placing blocks where and how they please and function creates Node loops. As of right now It seems things are working nicely. I've been busy testing all sorts of scenarios and modifying the code accordingly. The code is incredibly finicky and if a line is out of place or ordered wrong the whole thing crashes down. It's like Fine China, haha. Right now the block's are set to an arbitrary height of 5. But users will be able to modify this at a later time. Probably increments of 4. The set increment thing is what I've been seesawing about, we'll see if I can just get it to work before I lower the increment value. Anyways here is my incredibly exciting video of testing if this stuff all works ( p.s what I want to see is a continuous wall that surrounds the blocks to form a loop. Also they are only 1 sided faces so that the collision geometry can only be triggered from one direction. )
  19. Hello! I'm new to the scene of video game developing and was wondering if anyone here has any experience developing 2D fighters and are up for making a little test demo to see if the idea would catch on to the public? I have no way of paying but I want to put the demo onto Kickstarter and I will pay a good amount if I get a good amount. Please, if you want to contact me for more info, add me on my Discord or Twitter. Thank you, and see you later! (Twitter: @enderstaffexe Discord: EnderStaffExe#3193)
  20. Last week was intense! There's a lot of new stuff! So without further ados, let's cut the cheese. 🧀 Loading Screens A-Plenty So last week I said I was able to load a level from the main menu. However, there were some problems when it came to the reactivity of the app during that loading phase... The game froze and gave no signs of activity, promoting Windows to administer the "Not Responding" treatment. To fix this I've broken up the loading process onto three separate loading processes. I've also optimized the music playing feature: it now initializes before the menu screen, so now everything can be offset to a secondary thread. It's just a matter of waiting for the end of that process with a Coroutine and load the next scene when it's done. This significantly speeds up the loading process to the point where some loading screen only shows up to immediately disappear after. Getting In and Out of Levels Secondly, I've finally linked all levels together. Now, when the player jumps down the Ethernet port a loading screen is shown and the next level is then loaded. This means that the player can theoretically complete the game for the very first time. (Yay!) Levels Thirdly, there is now more than one level. Each level has their own localized name. In the future, an AESTHETIC Sonic-like splash screen will be shown to introduce the level. Right now it's only a small notification, but it's getting there. Because the game uses a palette, it was really easy to add other levels. I did, however, need to make each level look distinct from one to another, so I had to work on their palettes a bit. In order to get the right feel, I've tried to get Vaporwave images that inspired me and extrapolate on their palettes to create new ones. Here's a bunch level and their respective name: Keep in mind that there'll be some level-specific props for each level in the future. (Just changing colours won't be enough to make each level unique) I also want to mention that two of these levels, mainly Current Cave and Hot Hell, have inverted palettes. Usually, each colour changes their values from light at the top to dark at the bottom. These levels have these value flipped. This creates an uneasy feeling, not unlike photo negatives. This effect was used in Current Cave to indicate that it's dark, while at Hot Hell it's hot. Development Builds While working on the game, it occurred to me that I've never built my game at all. This was kinda troubling, as I had a skewed view of the game's performance: the Unity Editor creates a lot of overhead, meaning that the game genuinely runs slower in the Editor than as a standalone. So I've decided to finally build one small developer build to evaluate the game's performance. While doing this I've also decided to tweak some the standalone's settings. For example, I've added a nice logo at the game's main splash screen. (Just a placeholder one don't worry) I've also added a bunch of program icons and cursors. While doing the cursor, it occurred to me that I could generate different cursors for each level, so I tried it. First, I've created a base cursor image. Secondly, I map each colour channel of our base cursor to a colour given by the palette and store the result for later use. Then, when the level loads, we simply replace the cursor with the level's one and voilà. But anyways, I was able to compile a development build and give the link to some of my friends and relatives... I won't put it online right now: there're some easter eggs in it that aren't hidden yet 😉. Counting .mp3 files, the game's size is about 80 MB. While this can be quite big it is but a development build, so not everything has to be perfect. New Characters There's also three new "character" classes: gunner, marksmen and swordsmen. Each of these characters starts with their own equipment, base stats and even their own focus alignment. When the player starts a game with a specific character, its choice is saved in the save file. When the player plays again, the last used character will be already highlighted. But enough talk, let's get right into each of these classes. The Gunner Nicknamed "True American", this character starts with, well, a gun. His weapon: The Gun The gun is a new hit-scan weapon that can also be obtained in-game. It uses ammo and doesn't need to be charged like the bow. This is quite handy, but this weapon is also especially loud: It's not the most subtle weapon out there. Also, unlike the bow, it can only hold a set amount of bullets. (no reload sorry guys) When the gun runs out of ammo, the player can use a secondary melee attack. This attack, however, is considerably weaker than using a bullet. Once the player has a gun, ammo will spawn where common consumable items would also spawn. It can even be found in Malls if the player holds a gun when the level was generated. The ammo is game persistent. This means that if the player had a gun, collected and used ammo, switched to another weapon and switch back to another gun then the ammo amount will stay the same. His Item: The Cellphone The True American also comes whit a cellphone. This gives him the ability to create one-way teleportation points. His Stats For stats, he's really kinda weak compared to The Standard, but what he loses in raw defence he gains back in HP, making him a powerhouse if you can avoid direct contacts with enemies. The Marksmen Nicknamed "Robin Hood", this character uses a bow to dish out damages. His Weapon: The Bow This new weapon can also be obtained in the game. The Bow is used in conjunction with arrows to create a formidable combo. Unlike the gun, the bow isn't a hit-scan weapon: it instead throws arrows. In order to be effective, this weapon needs to be charged up. The player presses and hold the attack button, and release it to unleash a deadly arrow. The longer the player holds the button the faster and deadlier the arrow is. The player can also use a secondary melee attack by quickly tapping the attack button rather than holding it down. This is useful to break breakable boxes or quickly dispatch weaker enemies without wasting any arrows. Like the gun, when the player runs out of arrows, then the weaker melee attack is used. Arrows behave just like gun ammo: they will be lootable when the player holds a bow and their amount is game persistent. Oh, and it's a really expressive way to do art too: His Item: The Survival Gear Robin Hood also holds a survival backpack. This makes him able to consume some of his health and produce food items. His Stats Robin Hood's stats are somehow similar to the True American's, but where the latter gains more in HP the first has a significant advantage in Agility. The Swordsmen Nicknamed "The Standard", this is the default character and probably the only character that isn't an unlock. His Weapon: The Sword The Standard uses a basic sword. It only has a melee attack with a set range. It's quick enough to repeatedly attack in quick succession, but that's about it. His Item: None The Standard doesn't hold any items nor any other equipment whatsoever. I'm not sure whenever or not there should be an unlockable item for this character much like The Binding of Isaac or not... His Stats This is a placeholder stats, but the idea is that this character is an all ground one. Minor Tweaks Upgraded particle physics. Now each rock crumbles made by breaking either a breakable wall or a rock will react according to their position and the explosive force of the bomb. Fixed a bunch of bugs with collision layers. Added locked folder items. This means that in order to open these you'll need a key. Optimized the VaporMaker album image system. Now the colour mapping takes place in the GPU rather than the CPU, saving memory and quickening the whole VaporMaker process. Optimized shaders so that the building of the game doesn't take ages. Added colour palette support for many GUI components. Made GUI component's colour listen to any palette changes so that their colour would always follow the palette. A lot of refactors and fixes. Made some GUI layout more responsive. Fixed bugs. a lot. Made State loading more dynamic. Next week What is planned next week is to polish and balance those new classes. I also want to polish some stuff that I've noted down. After that, It's up to bosses. Afterwards, it's the usual suspect... I got to say: the more and more new features get implemented the more and more this thing I have starts to resemble an actual game.
  21. ERASERHEAD STUDIO

    13 RONIN - DevLog #7 - Fight or flight!

    Since I had no previous experience of coding a computer player I turned to our friend google for advice. I found a number of threads on the subject, some talked about AI, but most of them talked about reaction based solutions, but since I’m not interested in AI and rather want to mimic the feeling found in old-school fighting games I decided to go for the reaction based solution. And when I use the phrase “reaction based”, I’m referring to an implementation that selects action-based on one or several conditions e.g. if the opponent hit then block. Feeling a bit over-confident, I stopped reading and headed over to Visual Studio just to realize that this was not as easy as I had thought. Soon I had a bunch of if-statement and a code hard to follow. I refactored the code, but still I wasn’t pleased Along came Halloween and at my workplace, we had an amazing party (I was dressed as the Invisible Man). After dinner, I chatted with a colleague and talking about the computer player he asked if I was using a decision-tree for action selection. Decision trees? What’s this, yet another gap of knowledge. The name itself told me that this was something I had to read up on. So, the day after, still recovering from the party, I started reading. And oh yes, this was what I’ve been looking for. (Thanks Mikael for the suggestion) Decision trees The full definition is somewhat longer, but simplified, a decision tree is a tree structure describing conditions and results. Every node is a condition deciding upon which branch to follow until reaching the leaf and the result of the path taken. This was exactly the kind of data structure I needed to find a structure around the computer player logic Using a fluent builder I could put all conditions in a tree and let the leaves contain what actions to perform. Decision tree for the computer player. DecisionTreeNode My implementation of the decision tree is very basic, it consists of a DecisionTreeNode-class that I use for the tree as well as for the nodes and the leaves. The Condition-property is only applicable to condition nodes. It’s a delegate that when called will evaluate what child node to step into. It returns the name of the child to step into. The Result-property is only applicable to leaves. It’s a delegate with actions associated to the leaf. The GamePlayState-class contains all data needed when deciding computer action. DecisionTreeBuilder I’m quite fond of fluent coding so when building the DecisionTreeBuilder it was a natural pattern to choose. Using this pattern makes classes easy to use and code easy to read. This is how I build the decision tree var decisionTree = DecisionTreeBuilder .Begin( "Reacting", state => state.Player.IsReacting() ? "Elapsed" : "Opp new action") .AddNode( "Elapsed", state => state.Player.IsTimeToReact(state.GameTime.TotalGameTime) ? "Facing" : "Done 1") .AddNode( "Facing", state => { return state.Player.IsFacingOpponent() ? "Reachable 1" : "Reachable 2"; }) .AddNode( "Reachable 1", state => state.Player.IsWithinReach(state.Opponent) ? "Opp attacking" : "Opp approaching") .AddNode( "Opp attacking", state => state.Player.ActionToReactUpon is AttackAction ? "Defend" : "Attack 1") .AddLeaf( "Defend", state => { state.Player.ResetReaction(); state.Player.ParryHeadCut(); }) .AddLeaf( "Attack 1", state => { state.Player.ResetReaction(); state.Player.HeadCut(); }) .Parent() .AddNode( "Opp approaching", state => state.Opponent.IsAdvancing() && state.Opponent.IsFacingOpponent() ? "Idle 1" : "Advance 1") . . . .Build(); AddNode will create and append a new node to the current nodes’ children and then go into the newly created node and make it current. AddLeaf will create and append a new leaf, but not go into it. Parent will go to the parent node and make it current. Build will return the newly composed tree. The choice to use strings for names makes it easy to follow the code but also makes it easy switching between the diagram and the code. The Parent-, and Name-properties together with the GetFullName method make nice tools while debugging. Player In my game I have a HumanPlayer-class and a ComputerPlayer-class, both implementing an abstract class Player. The main difference between the Human- and the ComputerPlayer-class is how the Update-method is implemented. The HumanPlayer-class is using input from keyboard and gamepad to control the player character while the ComputerPlayer is using the decision tree. The code for using the tree looks like this: var leaf = _decisionTree.Evaluate(state); leaf.Action(state); Nice, isn’t it? Happy coding! jan.
  22. A new entry in the devlog for 13 Ronin, a retro 2d samurai fighting game, this time it's about implementing the logic for the computer player. Happy coding! https://www.eraserheadstudio.com
  23. Hey, So I have got this asteroid type game and today I encountered a new issue while testing this game. What happened was that two asteroids were close to each other and I shot a bullet at them. The asteroids were so close to each other that a single bullet could collide to both of them. It collided and my game crashed there itself. I figured out it happened because two asteroids and one bullet collided in the same frame. This is the code - ```void Collision::DoCollisions(Game *game) const { for (ColliderList::const_iterator colliderAIt = colliders_.begin(), end = colliders_.end(); colliderAIt != end; ++colliderAIt) { ColliderList::const_iterator colliderBIt = colliderAIt; for (++colliderBIt; colliderBIt != end; ++colliderBIt) { Collider *colliderA = *colliderAIt; Collider *colliderB = *colliderBIt; if (CollisionTest(colliderA, colliderB)) { game->DoCollision(colliderA->entity, colliderB->entity); } } } }``` ``` void Game::DoCollision(GameEntity *a, GameEntity *b) { Ship *player = static_cast<Ship *>(a == player_ ? a : (b == player_ ? b : 0)); Bullet *bullet = static_cast<Bullet *>(IsBullet(a) ? a : (IsBullet(b) ? b : 0)); Asteroid *asteroid = static_cast<Asteroid *>(IsAsteroid(a) ? a : (IsAsteroid(b) ? b : 0)); Bullet *bulletMode = static_cast<Bullet *>(IsBulletMode(a) ? a : (IsBulletMode(b) ? b : 0)); if (player && asteroid) { player->playerCollided = true; //AsteroidHit(asteroid); //DeletePlayer(); } if (bullet && asteroid) { collidedBullets.push_back(bullet); collidedAsteroid.push_back(asteroid); //AsteroidHit(asteroid); //DeleteBullet(); } if(bulletMode && asteroid) { collidedBulletMode.push_back(bulletMode); collidedAsteroid.push_back(asteroid); } }``` ``` void Game::CollisionResponse() { if(player_->playerCollided == true) { DeletePlayer(); } else { if(!collidedAsteroid.empty()) { for(AsteroidList::const_iterator collidedAsteroidIt = collidedAsteroid.begin(), end = collidedAsteroid.end(); collidedAsteroidIt != end ; ++collidedAsteroidIt ) { AsteroidHit(*collidedAsteroidIt); } collidedAsteroid.clear(); } if(!collidedBullets.empty()) { for (BulletList::const_iterator bulletIt = collidedBullets.begin(), end = collidedBullets.end() ; bulletIt!=end; ++bulletIt) { DeleteBullet(*bulletIt); } collidedBullets.clear(); } if(!collidedBulletMode.empty()) { for (BulletList::const_iterator bulletIt = collidedBulletMode.begin(), end = collidedBulletMode.end() ; bulletIt!=end; ++bulletIt) { DeleteBulletMode(*bulletIt); } collidedBulletMode.clear(); } } }``` in my game->docollision() - whenever an asteroid and a bullet used to collide, the collided objects get collected in collidedasteroids and collidedbullets respectively. When two asteroids collided with the same bullet, the two asteroids got collected safely in collidedAsteroid but the single bullet got collected in collidedBullets twice, so when the deletion was happening, the second time iteration of the bullet couldn't find the respective bullet and it got crashed. How am I supposed to approach this problem now? Thanks
  24. I always liked playing both Mario Kart (the most was on DS) and Crash Team Racing. There's just something fascinating with the mechanics of the game. I could play it endlessly, despite a small number of different circuits. Actually I like racers in general. Two years ago I made a racer looking like Outrun, which is another type of game which I loved as a child (at a time where games didn't yet have a defined standard, so it was OK to just play to hit the road and explore environments, without princess to save, big boss or other deadly stake). Link: https://itunes.apple.com/us/app/highway-runners/id964932741?mt=8 But still, back to Crash Team Racing, I always wanted to make my own clone for fun, and I gave up due to lacking physics knowledge (and free time). This remained a dream though, and this time I committed to it harder, and learned, fiddled with every concept until I grasped it. It started with an inspiring video about Space Dust Racing. I think that's the one mentioned everywhere when it comes to developing an arcade racer. I think I kinda knew that it was lacking a lot of concepts that I'd eventually have to fiddle with, but many people were saying that the theory was alright, so I started. I also created a topic, which I'll now turn to a blog: Anyway as with many things the very hard part was the beginning. It's amazing when I think about how at first I was unsure about everything. About how I had to swallow my ego and realize that I wasn't able to implement a simple spring correctly, or to understand the true implications. Well I can say that I still don't truly understand everything, but it's enough to get what my car does and make it do what I want so so this blog may just start with a common and sweet "Believe in yourself" claim I hope to develop it into a fully playable game (homebrew quality though), focusing on the mechanics, and detail here some specific algorithmic areas. I'm not sure yet of the final form, maybe I'll want to get as close to the CTR as possible. Maybe I'll go for something else and think about special challenges that I could bring to the table. Here's how it looks for now Not playable demo yet, but feel free to leave your impressions, suggestions, and anything that you'd like to see in such a project CarGame-v2.mp4
  25. How to calculate angle between two points from a third point with the help of D3DXMATH library?
  • 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!