• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

Valoo

Members
  • Content count

    28
  • Joined

  • Last visited

Community Reputation

881 Good

About Valoo

  • Rank
    Member
  1. Depending on the situation, you maybe could get away with simulating gravity and only interpolating the horizontal movement. I have no idea if this is true, but Guild wars 2 feels like it does this for proxy player characters (with occasional corrections).
  2. I didn't read any of the above answers, maybe it's already in there, but i think this works:   [spoiler] weight 6 vs 6 if one is heavier, split that into 3 vs 3 split the heavier one into 1/1 and take one away. if the remaining two are equal, it's the one taken away, else the heavier one. [/spoiler]
  3. I know that it has to be specific to the game, and i hoped to build a system that becomes specialized at the point where the user created his game specific requirements (and/or implemented the associated (generic?)interfaces for the entities). I currently also have a kind of trigger system, not as sophisticated, but involved entities (npc, player, world context) can be notified when a dialog option is selected. AND'ing and OR'ing of the requirements is also already in there. It's just the way the requirement is structured that currently botheres me. But i will see what i can do with all the suggestions i got.
  4. I understand now, thank you for these suggestions.
  5. @Alberth The idea of passing check objects sounds good. I guess that would mean i still keep the base requirement class with the valuetype fields which the specific check object then takes the ones it needs from, kind of like an adapter?   @Servant of the Lord For the strings idea, it seems to me that this means logging all game events in this string format. And that means checking the inventory for example for an item would become a search for "PickedUpItemX" or the surrounding system has to know which specific events to log as a certain keyword which i feel could be a too strong requirement for the system. And to your script idea it sounds to me like you mean it in a similar way to these check objects, no? (if i understood these correctly)
  6. I see, my explanation wasn't that good and it seems missing some information. Each entity that needs dialogs has the dialog component that holds all dialogs for that entity. If the player requests dialogs, the code checks the each root element of the dialogs for its requirements. This means, foreach DialogRoot (and subsequent dialogoptions: if at that point), i pass the dialogrequirements to the entity the req. is targeted at, for it to check them, because i currently have no idea how to kind of externalize them (i hope that word describes it better). In the end, i want to enable the user to create custom requirements specific to his game (and maybe the validation methods, if those are needed?), for example like Requirement_HasItem that i can use in my system without hardcoding them or having a big allround requirement class with all value types as fields and an enum that defines how the values should be handled (what i currently have)
  7. Hi, i'm writing a dialog system (first serious attempt) and came to a point where i want to make it more 'unspecific'. Each dialog currently has options to specify requirements (List of DialogRequirement objects) for it to be a selectable option, which consist of a target (enum - npc, player, world) and a type (enum -state, logEntry, etc) and a few value fields (int, float, string). When checking the requirements i select the target based on the enum value and pass the requirement object to it. Targets implement an interface (IDialogRelevant) with bool ValidateRequirement(DialogRequirement) and use the value fields for the check. The problem i have is that the requirement has these value fields (int intValue, float floatValue ..) that are bad to read and easy to implement wrong in the DialogRelevant entity and also the RequirementType enum too tied to a specific type of game (the requirementType enum currently has things like QuestLog for example).   What i would want is it to be extensible , like new requirement (sub)classes which then could (and should) be more specific. What i thought, but am confused about is generic interfaces, or an abstract generic baseclass. (But if, how would i 'connect' these to the specific requirement target and pass the required value and what way should i do it, and wouldn't i have to typecheck and cast these before passing them to the specific target as i have to store them in a baseclass type field?)   i'm using unity (c#) and already have a visual interface ready to build the dialogs, but want it to be open to the requirement types that the user can implement, like i think giving them a Draw() method would be the way (as there's currently only this one requirement object i just inlined the drawing of it).   How would i design it?   I hope you can understand what i mean.
  8. Shoud i try to predict dodges/leaps and similiar on the client, is this how it's usually done? Guild wars 2 is an example for the types of movement tied to abilities i have and want to have working.
  9. thanks for your answer, i read that article some time ago. i can't see an answer to my question in it, but i guess you mean i should try to predict the outcome of abilty-tied movement too? It came to my mind that for each resimulation step that happens inside the predicted ability movement i kind of have to fire the spell for that move again, or something. I'm completely lost how i could integrate the spell/ability system into the movement prediction (predicted movement is based on key input, but ability movement isn't). Currently the player sends: i want to cast ChargeSpell the server validates, then sends back DoCastBar() after finishing it sends the outcome of the spell, in this case ChargeToEnemy(X) ChargeToEnemy is a coroutine i would run on the server and the client, which disallowed regular movement, while 'charging' (doing its own movement calculation on the player) towards the enemy. after the coroutine finished input movement was allowed again.   But recently i rewrote the movement code to use client side prediction (and not just telling the server where you are) and now i'm unsure how i can make both (spell/-movement + predicted input movement) work together.   Maybe i just have to redesign how spells/abilities work or the coroutine movement. (i still consider myself a newbie, as most of what i code is kind of self-taught)
  10. Hi, my game depends on spells that grant the player abilities like leap, charge, levitate and so on. As these hook into the movement i'm not sure whether i should include them in the client side prediction or just wait until the server initiates them. When not including them i imagine i would just pause the prediction part, while 'transitioning' (i'm doing these inside a coroutine in Unity) and resume it after the Transition has finished. but i also imagine this may lead to some prediction problems with the missing part? When including, i guess i would have to rewrite the way these work (and i'm not sure how, as they come from spells, not direct key input).   How do commercial games do it, or is there even a better way?
  11. thanks for your answer, but what i meant was, if the packet gets lost on its way to the server, and the server then skips the jump-action, the player will on his client snap back to the ground where he left and, because he held forward, walk off a cliff he meant to jump over. i had the idea: should i just send the jump and anything alike separately from the normal movement packets (and then reliable) ?
  12. Edit: i found that the problem was the ground-state not correctly setting when re-simulating from a server sent state. As i dont know how to delete this thread, i have another question: what do i do when the packet containing the jump-action gets lost (snapping back could mean walking off a cliff)?   Hi, i recently tried to create a client side predicted multiplayer sample (with unity/Lidgren, simulated 200ms latency). So far it works ok. But at some points (kind of randomly) it seems to miss a 'jump'-action, gets corrected, thus glitching the token over half the jump. i currently do it like so: client and server start counting up their tick-counter when started. 30times a second client gets its input, sends it to the server (including the tick), applies it on itself and puts it in a list. on the server i shift the tick according to the incoming number ( if difference > big amount: localtick = incoming tick, else tick++/--) and move the server entity with the attached input every 0.1 second i send the state back to the client with the servers (adjusted) tick the client then resimulates from that tick with the inputs from its past-inputs-list.   from debug.logs i often see (on the server's side): -intended tick: 259, current: 260 -intended tick 260, current: 259 (<-because i adjusted it before)   i guess that's where the problem lies. (the jump action is only 1 tick long). Though i'm not sure, and also not, how to handle this. (I still consider myself a newbie)   here's a video which i hope shows what i mean (towards the end): https://www.youtube.com/watch?v=P84wJO3su6g
  13. I'm currently doing a similar thing (online rpg kind of game) and i came to the conclusion that, atleast for me, it seems inevitable to have the server not be a Unity instance too, if i want to handle physics server sided. I'm also using Aron Granbergs A* for pathing and skills/spells (teleporting for example, like guild wars 2). I read somewhere that he planned the possibility of it to be run outside unity (Photon i believe), but haven't seen any further mention of that. But for now it works very well inside unity. i send position related data (position, velocity, y-rotation) 5 times a second and the difference on the client is very acceptable (interpolated and halfway extrapolated).   Also, dont let the player control any mob. I have once seen a game doing that where you could pull all mobs in the area towards you using a hack and one-hit kill them. If unsure maybe just do the movement (mob to player) in a straight line (some Wow private servers do that, if pathing is not enabled). The Mob will most likely run through walls and all that but thats better than giving the player an opportunity to cheat for free.