• Breaking News

    Wednesday, October 24, 2018

    FPS Sample Game from Unity Technologies (fully functional, first person multiplayer shooter game made in Unity and with full source and assets)

    FPS Sample Game from Unity Technologies (fully functional, first person multiplayer shooter game made in Unity and with full source and assets)


    FPS Sample Game from Unity Technologies (fully functional, first person multiplayer shooter game made in Unity and with full source and assets)

    Posted: 24 Oct 2018 01:53 AM PDT

    Procedural map-generation for a rogue-like we're making

    Posted: 24 Oct 2018 09:46 AM PDT

    Unity Austin: ECS Megacity demo

    Posted: 24 Oct 2018 02:09 AM PDT

    Live-coding JavaScript example for our upcoming prototyping tool, "GameBuilder" -- Comment here or PM me for a free Steam key!

    Posted: 24 Oct 2018 08:40 AM PDT

    Hello /rGameDev I'm an Attorney who provides legal services to the interactive entertainment industry time for the Bi-Weekly AMA.

    Posted: 24 Oct 2018 06:08 AM PDT

    Hello GameDevs and Publishers,

    Its time for the Press Start Legal Bi-Weekly AMA! In an effort to give back to our this great community, we've deiced to attempt to run two AMA's a month.

    My name is Zac Rich I am the founding partner of Press Start Legal, a law firm created for providing legal services for the Interactive Entertainment Industry. Our clients range from video game developers and publishers, tech startups, online and e-commerce businesses, content creators and social media influencers.

    My practice areas include marketing and advertising law, privacy law, intellectual property (trademarks and copyrights) and contracts.

    Ask me Anything!

    Disclaimer: Nothing in this post should be considered legal advice, everything posted here is my general opinion as facts of your case may vary. This post does not create an Attorney-Client relationship, and as such, I strongly advise you do not post anything confidential. If you have a question you don't feel comfortable asking here, please direct message me or we can set up a free consultation, just send me an E-mail to [Zac@PressStartLegal.com](mailto:Zac@PressStartLegal.com)

    submitted by /u/PressStartLegal
    [link] [comments]

    Making skills on industrial scale.

    Posted: 24 Oct 2018 08:29 AM PDT

    Intro

    This post is not intended for beginner programmers so i will not cover basic things.

    Hi everyone, i'm currently making turn-based rpg and i want to share with you my approach to making skills on an industrial scale.

    As you all know rpg is pretty complex genre and content creation takes huge part of development time. One of the main features of Dark Bestiary is big amount of different skills to give player opportunity to create any class he wants. I wanted this process to be as fast and easy as possible. Here is footage of me creating fireball.

    https://reddit.com/link/9r0nma/video/c8n21wceu4u11/player

    Tools

    I use Unity and C# for game and Laravel, postgresql, vuejs for editor. Why i don't use Unity's build in editor stuff? Because i found it slower and harder way to create complex UI, and i have webdev background so for me that was obvious choice :) Plus i can use it anywhere i have connection to internet.

    Core pillars

    Core pillars of this system is Effect and Behaviour. With help of these elements you can create any spell you want.

    Effect

    Effect is a simple one-shot action like deal damage or launch missile. But i have few "service" effects to create more complex logic, they are not doing anything by themselves but provides useful utility, for example EffectSet contains a list of effects which are called one after another or SearchAreaEffect which responsibility is to search units in area and apply another effects to them.

    namespace DarkBestiary.Effects { public class HealEffect : PropertyBasedEffect { private readonly HealEffectData data; private readonly IPropertyRepository propertyRepository; public HealEffect(HealEffectData data, List<Validator> validators, IPropertyRepository propertyRepository) : base(data, validators, propertyRepository) { this.data = data; } protected override void Apply(GameObject caster, GameObject target) { target.GetComponent<HealthComponent>().Heal(caster, new Healing(GetHealAmount(caster))); TriggerFinished(); } public float GetHealAmount(GameObject entity) { return this.data.Base + GetPropertiesBonus(entity); } } } 

    As you can see effect has method Apply which receives two arguments: caster and target. This is tricky part, caster is always GameObject but target can be Vector3 as well so i have an overload for this. Also target can be overwritten inside base effect class, for example you are casting skill that damages target and heals caster at the same time. To do so you must have EffectSet, DamageEffect and HealEffect. EffectSet applies to target gameObject for damage effect it's fine but if you will not overwrite target to caster you will heal enemy instead of self.

    Behaviour

    Behaviour is slightly different to effect because it has duration. Perfect example of behaviour is buff. Buff has initial, periodic and final effects. Behaviours have some service classes too, for example BehaviourSet contains a list of behaviours. It applies all of them when it is applied and calls lifecycle callbacks on them (OnApply, OnTick, OnRefresh, OnRemove). Another use-case of behaviours is reaction to gameplay events, you can create behaviour that reacts to take damage event and for example launches missile into attacker.

    namespace DarkBestiary.Behaviours { public class ModifyAttributesBehaviour : Behaviour { private readonly List<AttributeModifier> attributeModifiers; public ModifyAttributesBehaviour(ModifyAttributesBehaviourData data, IAttributeRepository attributeRepository ) : base(data) { this.attributeModifiers = new List<AttributeModifier>(); foreach (var attributeModifierData in data.AttributeModifiers) { var modifier = new AttributeModifier( attributeRepository.Find(attributeModifierData.AttributeId), attributeModifierData.Amount, attributeModifierData.Type ); this.attributeModifiers.Add(modifier); } } protected override void OnApply(GameObject caster, GameObject target) { target.GetComponent<AttributesComponent>().ApplyModifiers(this.attributeModifiers); } protected override void OnRemove(GameObject source, GameObject target) { target.GetComponent<AttributesComponent>().RemoveModifiers(this.attributeModifiers); } } } 

    Data

    All the data is storing in postgresql database, Unity receives it through json API using web request. In Unity i use combination of DTO (Plain class that represents JSON api response) Mapper and Repository. For JSON serialization i use JSON.net.

    DTO is pretty straightforward. The only thing that i can notice about is string field in base class that represents the class of object which data belongs to.

     [Serializable] public class DamageEffectData : PropertyBasedEffectData { public int Base; public int NumberOfDice; public int SidesPerDice; public DamageType DamageType; public DamageFlags DamageFlags; } 

    For type-based deserialization i use custom JsonConverters. You can find more information about them at newtonsoft.com.

    namespace DarkBestiary.Data.Readers.Json { public class EffectJsonConverter : JsonConverter { public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { throw new NotImplementedException(); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var json = JObject.Load(reader); var type = json["Type"].Value<string>(); if (type == typeof(DamageEffect).Name) { return json.ToObject<DamageEffectData>(serializer); } // Other conditions for every type of effect i have. throw new InvalidDataException($"Unknown effect type {type}"); } public override bool CanConvert(Type objectType) { return objectType == typeof(EffectData); } } } 

    Mappers is the thing that responsible for converting DTO to in-game entity. I use primitive implementation of this pattern but you can use schema with set of properties that have its own logic for Get and Set operations or whatever you want.

    namespace DarkBestiary.Data.Mappers { public class EffectMapper : Mapper<EffectData, Effect> { private readonly IValidatorRepository validatorRepository; private static readonly Dictionary<string, Type> Mapping = new Dictionary<string, Type>(); static EffectMapper() { Assembly.GetAssembly(typeof(Effect)) .GetTypes() .Where(type => type.IsClass && type.IsSubclassOf(typeof(Effect)) && !type.IsAbstract) .ForEach(type => Mapping.Add(type.Name, type)); } public EffectMapper(IValidatorRepository validatorRepository) { this.validatorRepository = validatorRepository; } public override EffectData ToData(Effect effect) { throw new NotImplementedException(); } public override Effect ToEntity(EffectData data) { if (!Mapping.ContainsKey(data.Type)) { throw new Exception("Unknown effect type " + data.Type); } return Container.Instance.Instantiate( Mapping[data.Type], new object[] { data, this.validatorRepository.Find(data.Validators).ToList() }) as Effect; } } } 

    And finally repositories. Repository is good old pattern that responsible for data access.

    namespace DarkBestiary.Data.Repositories { public interface IRepository<TKey, TValue> { void Save(TValue data); void Save(List<TValue> data); void Delete(TKey key); void Delete(List<TValue> data); TValue Find(TKey key); List<TValue> Find(List<TKey> keys); List<TValue> FindAll(); TValue FindOrFail(TKey key); } } 

    Here is implementation for reading data from files. Cache is implemented in JsonFileReader class because all data operations goes through it.

    // Base class namespace DarkBestiary.Data.Repositories.File { public abstract class FileRepository<TKey, TData, TEntity> : IRepository<TKey, TEntity> where TData : Identity<TKey> { protected readonly IFileReader Loader; protected readonly IMapper<TData, TEntity> Mapper; protected FileRepository(IFileReader loader, IMapper<TData, TEntity> mapper) { this.Loader = loader; this.Mapper = mapper; } protected abstract string GetFilename(); // Your implementation here } } // Item repository namespace DarkBestiary.Data.Repositories.File { public class ItemFileRepository : FileRepository<int, ItemData, Item>, IItemRepository { public ItemFileRepository(IFileReader loader, ItemMapper mapper) : base(loader, mapper) { } protected override string GetFilename() { return Application.streamingAssetsPath + "/data/items.json"; } public List<Item> FindGambleable() { return LoadData() .Where(data => data.Flags.HasFlag(ItemFlags.Gambleable)) .Select(this.Mapper.ToEntity) .ToList(); } } } 

    I think this will be enough to understand the principles :) Now i want you to show some examples.

    Examples

    Bomb. In video above I've made simple fireball spell, so what about something more complex? Let's create a bomb skill that will travel to target location and do AOE damage on impact.

    We will need:

    1. LaunchMissileEffect
    2. SearchAreaEffect
    3. DamageEffect

    Skill will be linked to launch missile effect because this is our starting point. Launch missile will have final effect (when missile is reached the destination) that will search enemies in radius of 2 cells and damage them.

    So now effect chain will look like this:

    LaunchMissileEffect -> SearchAreaEffect -> DamageEffect

    Or we can do crazy stuff like fireballs launching from Bomb impact location. To do this we can simply replace damage effect with launch missile.

    LaunchMissileEffect -> SearchAreaEffect -> LaunchMissileEffect -> DamageEffect

    Notice: if logic goes too complex to implement, simply introduce a new effect type that will simplify it. Perfect example - chain skills, you can implement them by using SearchAreaEffect and SetEffect but you will have to create over9001 different effects to achieve chain behaviour or you can simply create a ChainEffect that will do it for you.

    namespace DarkBestiary.Effects { public class ChainEffect : Effect { private readonly ChainEffectData data; private readonly BoardNavigator boardNavigator; private readonly IEffectRepository effectRepository; private readonly List<GameObject> hits = new List<GameObject>(); private int counter; public ChainEffect(ChainEffectData data, List<Validator> validators, BoardNavigator boardNavigator, IEffectRepository effectRepository) : base(data, validators) { this.data = data; this.boardNavigator = boardNavigator; this.effectRepository = effectRepository; } protected override void Apply(GameObject caster, GameObject target) { this.hits.Add(caster); ChainSearch(caster, caster, target); } private void ChainSearch(GameObject origin, GameObject caster, GameObject target) { Timer.Instance.StartCoroutine(ChainSearchCoroutine(origin, caster, target)); } private IEnumerator ChainSearchCoroutine(GameObject origin, GameObject caster, GameObject target) { while (this.counter <= this.data.Times) { this.counter++; var effect = this.effectRepository.Find(this.data.EffectId); effect.Origin = origin; effect.Apply(caster, target); this.hits.Add(target); var nextTarget = this.boardNavigator .EntitiesInRadius(target.transform.position, this.data.Radius) .Where(entity => this.Validators.All(validator => validator.Validate(caster, entity))) .OrderBy(entity => (entity.transform.position - origin.transform.position).sqrMagnitude) .FirstOrDefault(entity => !this.hits.Contains(entity)); if (nextTarget == null) { break; } yield return new WaitForSeconds(this.data.Period); ChainSearch(target, caster, nextTarget); } } } } 

    Chain Lightning. To implement this you must create a new Effect called ChainEffect which will search all entities in a chain and apply some effect to them.

    Effects will look like this:

    ChainEffect -> DamageEffect

    Restoration totem. Is a good example of using behaviours. To create this skill we will need:

    1. CreateUnitEffect
    2. SearchAreaEffect
    3. HealEffect
    4. BuffBehaviour

    Let's start from behaviour. It will have periodic effect that searches allies around totem and heals them. Then we have to attach this buff to our totem, i personally do it in editor, unit has a list of behaviours that will be applied on him when spawned. Now we must kill totem when buff fades. It can be easily done by implementing KillEffect and linking it to final effect of out healing buff.

    As you can see it is very powerful tool. Hope you will find something useful in this post.

    Best regards, Ivan aka creator of Dark Bestiary.

    submitted by /u/DarkBestiary
    [link] [comments]

    My game is translated by chinese before I was aware of it.

    Posted: 24 Oct 2018 07:39 AM PDT

    I am a Korean hobby developer and my game support English and Korean. Yesterday I just found my game with full Chinese translation including title(with name changed) on web site dealing pirated software. In my knowledge Chinese cannot legally access Google store and steam so pirating is not my concern but anyway that was very weird experience. FYI my game have about 20 reviews on steam and sold 700 copies and sold 200 copies on android. Does anyone have similar experience?

    Edit: Maybe chinese people can access on steam now?

    submitted by /u/icefill
    [link] [comments]

    when the bottleneck is speed

    Posted: 24 Oct 2018 04:35 AM PDT

    I released a game 1 month ago, it is based on html5, and uses nwjs to display a transparent window. Long word short, it uses cpu mainly, as it uses canvas to draw thousands of shapes and images so the bottleneck is the speed. On my old pc it could be seconds per frame, on an office pc with a i3 cpu, it is less than 1 second, but still there us no way to update in 60fps. But the game is idle most of the time, it only redraws when needed. So I tried a different approach, I used another 2 canvases to swap the results when the drawing queue is completed, otherwise it uses the old result. Since the new OffscreenCanvas only supposes webgl, so a Worker thread is out of question, I have to put everything in the main thread. The game processes the queue and checks time using Date.getTime to decide when to break the queue. This is quite inefficient though it works, it still not smooth, I guess Date.getTime is not too accurate, but currently I'm out of options.

    tl;dr So how do you deal with such thing? How can I know when to break a drawing queue so the gui doesn't freeze?

    submitted by /u/Axedwarf
    [link] [comments]

    Minesweeper in 100 lines of pure JavaScript

    Posted: 23 Oct 2018 07:56 PM PDT

    WIP Wednesday #108

    Posted: 24 Oct 2018 06:08 AM PDT

    What is WIP Wednesday?

    Share your work-in-progress (WIP) prototype, feature, art, model or work-in-progress game here and get early feedback from, and give early feedback to, other game developers.

    RULES

    • Do promote good feedback and interesting posts, and upvote those who posted it! Also, don't forget to thank the people who took some of their time to write some feedback or encouraging words for you, even if you don't agree with what they said.
    • Do state what kind of feedback you want. We realise this may be hard, but please be as specific as possible so we can help each other best.
    • Do leave feedback to at least 2 other posts. It should be common courtesy, but just for the record: If you post your work and want feedback, give feedback to other people as well.
    • Do NOT post your completed work. This is for work-in-progress only, we want to support each other in early phases (It doesn't have to be pretty!).
    • Do NOT try to promote your game to game devs here, we are not your audience. You may include links to your game's website, social media or devblog for those who are interested, but don't push it; this is not for marketing purposes.

    Remember to use #WIPWednesday on social media for additional feedback and exposure!

    Note: Using url shorteners is discouraged as it may get you caught by Reddit's spam filter.

    All Previous WIP Wednesdays

    submitted by /u/purebotg
    [link] [comments]

    Blender 2.8 Low Poly Open / Close Animation

    Posted: 24 Oct 2018 08:47 AM PDT

    GitHub Game Off 2018 Jam

    Posted: 24 Oct 2018 10:06 AM PDT

    Classic Game Postmortem: Alone in the Dark

    Posted: 24 Oct 2018 09:40 AM PDT

    Hyper Headroid - Flame stage

    Posted: 24 Oct 2018 10:36 AM PDT

    Unity 2018 C# | Interaction System (E02) - Interacting with doors

    Posted: 24 Oct 2018 09:49 AM PDT

    Hi Gamedev. If you are looking for a different open & closing door sound effects. I recorded 5 truck doors on a junkyard in Malaysia and got some really nice sounds that you can download for free.

    Posted: 24 Oct 2018 09:40 AM PDT

    Simple 3D sculpting game

    Posted: 24 Oct 2018 09:05 AM PDT

    I have recently started working on a minigame concept which will require a user to both piece together simple shape as well as use basic tools to deform them. (basiclly a highly simplified 3D modeling tool). I have only done a little research as of yet. creating/ using a voxel engine looks like a good path but i dont really know what options are out there and what will fit my needs (I'm better at programming logic systems than the graphical side of things)

    i would love any information about various systems i could employ.

    submitted by /u/GaugeII
    [link] [comments]

    How Mega Man 11's Levels Do More With Less | Game Maker's Toolkit

    Posted: 24 Oct 2018 08:25 AM PDT

    Eldior: Darkness Returns

    Posted: 24 Oct 2018 08:22 AM PDT

    I am planning on making a video game based on Alan Garner's book, Elidor. The game will feature the titular land of Elidor, which is not often seen in the book, as it only featured in a few pages.

    My goal is explore a certain character's state of mind, called Malbron. He is inferred to be a Knight in the book, the last survivor in the mythical land of Elidor who holds the last artefacts of Elidor with him.

    The antagonist in the book, called 'The Darkness', has destroyed everything in the land. 'The Darkness' is implied as a negative metaphorical force with no human qualities.

    My objective is to tell to the story of how Malbron obtained the artefacts by developing a part of the story that has not been elaborated on. Moreover, I would like to demonstrate the fall of the land of Elidor and its impact on Malbron's mind.

    The plot consists of seeing the land of Elidor fall, in addition to introducing new characters that are not present in the book. My hope is to expand on the fall of Elidor and make it into a more engaging narrative.

    I'm hoping my creation will be seen as a post-apocalyptic video game that will engage the viewer and trigger a range of emotions, e.g., anger, melancholy, hope and excitement, to name a few.

    I would like to give the antagonist a more relatable form rather than a symbolic one. Instead of being a metaphorical force, 'The Darkness' will be a more literal force, as in an clan of seaborne raiders who pillaged their way across the land with no mercy, e.g the Vikings, Normans and Vandals.

    As a result, I need feedback on my idea, do you think its good, bad? How could I improve it?

    submitted by /u/That_One_Engi
    [link] [comments]

    If I wanted to create an environment of only cubes (think Minecraft) in Unreal Engine, would the most efficient method be to simply use cube-shaped actors?

    Posted: 24 Oct 2018 12:03 PM PDT

    I've implemented it with simply (to start with) a field of cube actors that spawn under the character, but is this inefficient if I wanted to generate an entire world/map?

    submitted by /u/BadassGhost
    [link] [comments]

    Creating Crossy Road From Scratch In Unity - Livestream

    Posted: 24 Oct 2018 11:48 AM PDT

    How hard is it to create an online game in Unity?

    Posted: 24 Oct 2018 07:27 AM PDT

    Hi there.

    I have some basic/méeium knowledge of making games with unity. Now I was thinking… how hard it is to make a game online? The "reference" of the kind of game I have on mind is pretty similar to the game C.A.T.S.With online features like Login, save the progress… and ofc to search and find an online game in real time.

    Is it difficult to someone who Works as indie developer alone?

    If anyone knows any resource such tutorials or something is really welcome

    pd: I have literally no idea of how could all of that Works, all I know is how to create the game I have in mind, but I want to know if it is really posible to someone like me to does it in spare times to create the online part

    submitted by /u/roneg
    [link] [comments]

    Free Image To Material Tool, Materialize, Now Open Source!

    Posted: 24 Oct 2018 11:03 AM PDT

    College Senior looking to chat with an industry professional who started as a QA Tester

    Posted: 24 Oct 2018 10:54 AM PDT

    No comments:

    Post a Comment