Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

1336 Excellent

About nhold

  • Rank


  • Twitter
  • Github
  • Twitch

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. nhold

    OOP is dead, long live OOP

    I really liked this article, great job. Ever since I implemented my own ECS I have realised it was a formalised term for a specific idea of relational data->algorithm setup. I have been trying to discuss this with peeps on reddit for a long time (3 or more years!) and how OOP doesn't mean large inheritance tree. It's refreshing to see someone who can explain in a much better way than me write an article. Thanks heaps, I'll be linking to this article a bunch.
  2. I have the same opinion of JavaScript (Lots of bugs that would be caught in a static library), but it's mostly the same issue I have with all dynamic languages. It's dynamic nature makes it difficult to consume libraries. A lot of is alleviated by heavy use of unit testing, good naming of variables, documentation and including the expected parameter and return type\s in documentation (Oops, why were we using a dynamic language again?).
  3. nhold

    Tower Defence - Post Mortem

    Great job! I am very interested in a blog post about what you hated about C# as I love your style of writing.
  4. nhold

    NPC daily routine

    No, you can't do that as the GameObjects in scene (Hierarchy) doesn't exist in the same scope as the prefab, what would it reference if you unloaded the scene? There is an accepted Unity pattern of having your own run time prefab library that access prefabs by some ID\Name.
  5. nhold

    NPC daily routine

    I don't understand your question, do you have code: public GameObject someObject; Because you should be able to put a prefab on that if it's in MonoBehaviour class (Or Serialized class that is in a MonoBehaviour). Is this related to your above question? It's usually best case to pool your GameObjects. Instantiating and destroying is pretty costly at the moment.
  6. nhold

    NPC daily routine

    Programmers first rule: Nothing is ever easy. What have you actually tried? Do you have some data that describes what your NPCs should be doing at what times? Entity ID: 1 should move from <location> to <location> leaving at 13:30 and on arrive:<roam\shop\stand\gather\fight> This way you could determine what the day\time currently is and see if they should be moving to a point, or already be at a point in some state when the player gets near(Which would respawn the NPC). If they are between points you just get the percentage of time they are within (Just a line that goes as the crow flies would work fine with the entities speed) then you can lerp along it based on that, maybe add data when they should be arriving as well. Regarding your OnTriggerEnter problem, what do you mean tags? Can you ensure everything is setup correctly as shown in the Unity documentation? https://docs.unity3d.com/Manual/CollidersOverview.html (Scroll down to the bottom) https://docs.unity3d.com/Manual/LayerBasedCollision.html
  7. Context is important when dealing with code, I very rarely randomly open up code and use my C++ knowledge to find and fix a bug especially if I don't have a reason, I use my debugging skills to do that in any language. Someone well versed in C++ might not know this random piece of trivia but could easily figure out the problem and solve it. I would notice this (It seems a bit smelly to me anyway), test if it is the problem, refactor it and fix it (And I still most likely wouldn't know this trivia). When I read it you were calling private non-static methods as public static methods, which could have easily been the problem I was meant to solve (With the interviewer not even knowing about the mutex lock).
  8. Generally that is easy to test because hopefully the legacy code actually compiles and you can debug through it in some manner. Why do we have 2 singletons? Is the issue that the large things take along time to collate? Are we worried about how they are constructed because you are (Assuming the compiler errors are just typos) calling getInstance in each-others constructors? Are the typos\compiler errors supposed to be tricking me up or apart of the exercise? How did I get to looking at this code? Did I notice something odd? Bug report filed? Randomly browsing? Again, I think this exercise does not help at all. Generally you are working with actual code or responding to some behavior in context.
  9. I don't like asking for really specific language questions or algorithm implementation anymore as that's really just testing memory, most of the time you should be testing problem solving or testing for the job they'll be doing. For example, when I used to interview for gameplay programmers I would get them in for a day and together we would prototype Pokemon in a console in a language of their choice on an actual workstation and desk, full access to the internet and me and they know this beforehand so they can plan it out. Doing this shows off their actual ability, how they will be working and how they work with me which I think is more important than memory tests. We initially filtered applicants based on their finished project experience and if they sent a simple open source game or project where we could see their code.
  10. nhold

    Wizards and Warrors

    The rest of his articles in this series aren't different, I think he is trying to solve these problems with his idea of idiomatic OOP and showing why that can be bad? I am not sure.
  11. nhold

    Wizards and Warrors

    I think many of you are missing the fact that he specifically says he wants the error caught at compile time, something I don't agree is necessary, otherwise the problem is trivial.
  12. nhold

    Dimins V2018.2

    This is a pretty small update focusing on UI and abilities. I added some basic UI: It's all working off of a fairly simple UI system, all transitions are handled by transition components and all view controllers handle specific aspects. Essentially all of the view containers here (The inventory and potraits) are a small amount of C# code: public class UIPortraitContainerView : UIBaseContainerView<UIPortraitView, MinionData> { } This base class handles displaying a collection of model data (In this case MinionData) inside a list of UIPortraitView components. It also handles dragging items around to re-order and pooling the views. Then the views themselves (UIPortraitView) handles any specifics (I.e clicking on the portrait shows\hides the stats of that minion) and initialising\updating from the model. I also went ahead and fixed a lot of abilities, here is Scratch and Spark. and here is Ember and Rock Throw My next step is to improve combat in the following ways: Change to a timer based, action point turn based combat system The basic idea is minions will have speed They will also have a pool of abilities (Starting with 4 at level 1-5) Each turn will happen based on each minions speed and any initiatives Each turn a minions action points will be replenished Each ability will cost a certain number of action points Optionally: You get a random draw of 3 abilities every turn. Add status effects Stun\Sleep (Each turn is skipped for x turns) DoT (Every time a turn starts it does damage for x turns) Stat increase\decrease (increase\decrease stat for x turns (Can't go to 0) Stoned (Speed is 0, no turns get hit so no DoT and no moves) Here is the build: Dimins_2018.2.zip
  13. nhold

    Review - Unity Hub (Beta)

    There is also no way to install patch releases from hub, you have to manually install and open a project with it. I didn't run into the android problem or not finding visual studio enterprise which I also use.
  14. nhold

    A Common Thread

    I don't know of a single game that isn't a conglomerate of the entire teams vision. Yes someone has to make sure it all matches but everyone contributes to the vision.
  15. nhold

    Dimins V2018.1

    I started making a game this month as a "One Man Army". I'm not really following any kind of dev process, just working what I feel like when I feel like and using only Unity, Blender and Gimp. First I got some references for the game I want to make, I want it to be a monster collection game on pc, android and switch. Only multiplayer will be pvp. The only motivation I have is I want a game that I like to play on mobile and pc with my partner and daughter. We decided to call it Dimensional Minions (Dimins), at least as a working title. https://sketchfab.com/models/3b15fce0a6d84f99ae2770aec2b9ba9e https://shop.bitgem3d.com/products/fantasy-land-se Pokemon Ultra Sun & Moon https://play.google.com/store/apps/details?id=com.ubisoft.runeguard&hl=en Did some basic modular and tiled environment assets, turns out my modelling and unwrapping is okay but my painting is horrendous. I followed that up with a basic movement and profile system in Unity, at this point it only saved the position of the player but all other data was added as needed and it worked out of the box. The camera feels weird, I'll probably have to spend a lot of time on it. Now something a bit more meaty, I made some Ability and Minion databases to describe what ability and minions are and to give them some stats and behaviour, then a secret place where combat takes place with the ability to run, swap minion, attack and capture enemy minion. I also added a basic custom animation\tween helper and a simple fluent interface for scripting abilities and their animations to spawn particles etc as well. I made a proper minion, his name is Cubgel, and gave minions some world behaviour to roam about. My daughter wanted a mummy and daddy one with lots of babies, that's why they are different scales. Then I made another tree, cementing the fact that my art really sucks: After that debacle I worked on dialogue, got basic stuff in the dialogue can interface with the current story data found in the players profile to determine what to say or not to say. Following that I got a friend to make some pixel art based on my scribblings to give some good references to make models from, for now most of them are cubes with the pixel art on them. I then made some spawners to spawn all the minions in the world and built a small area to play in. I also added a simple walk in cylinder to heal all your minions up otherwise the game just gets impossibly hard. I guess the current goal is to kill the highest level minion spawns. I'll have to add a story at some point. I added a lot of little tweaks like nameplates for minions, animation on the cylinder and some other basic 'polish' but at the moment I am just going to upload the build and call it a night. There are probably so many bugs but it's 1 am and it's time for sleep! Dimins_2018.1.zip Give it a play and give me some feedback on my horrid camera, ui and art. Literally any feedback will be appreciated. Oh another thing, I relatively recently started\released an open source game called STD(Simple Tower Defense) and if you wanna check that out it's here, it's 64 bit only and needs the VS 2017 redist installed, it also suffers from bad art. https://github.com/nhold/td/releases PS. Is this too much media?
  • 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!