• 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.


  • Content count

  • Joined

  • Last visited

Community Reputation

160 Neutral

About 3dmodelerguy

  • Rank
  1. @kburkhart84 Yea, having intellisense support would be nice and while my expectation of even releasing this game are somewhat low (since I am really just doing this as I enjoy coding and enjoy gaming and this combines both of those), I would like to not restriction myself from not allowing modding plus I prefer this method for my own development as adding a piece of loot is as simple add an items to the json file and nothing more. I also don't have to worry about the order of the items with dynamically generating my string -> id mapper as with a class the manually sets the ids, if I remove an item in the middle of the list, all the ids afterwards would get messed up. I am sure there are ways to work around that (using an enum might work) but dynamically generating the mapper makes it so I don't have to do anything special for it and I can organize my files any way I want, change the loading order, etc. without much worry.
  2. Thanks for all the feedback, for some direct responses: Yea, I am familiar with over engineering and am definitely guilty of doing that from time to time in my day job but under engineering is something that can also lead to bad things like a system that requires a lot of effort to work it or major / total rewrites. Just trying to find a good balance for my initial implementation so that whichever way I go over (which I am sure I will), it might be an easier refactor later down that road if that needs to happen. I know about how game I have played in the past do handles thing like this however I am know that games like startbound has a string id or string to int id mapping (since you can do things like `/spawnitem wheat` in their in-game console) and pretty sure rim world is also similar based on the modding docs (http://rimworldwiki.com/wiki/Modding_Tutorials/Weapons) where none of the items seem to have an int or hex based id (closes thing that looks unique is `defName` which is a string). --- I did some performance testing with a database of about 9000 base items loaded and when attempting to just use an int id in code to access data 10000 times, it took `0.00005` seconds and when when using a dictionary to get the int id, it takes `0.005` seconds. So while it is certainly a lot slower (by a factor of 100), I think this is an extreme case and I can't see any real reason I would ever need to try to access more then 100 items at a time (which is still an extreme case I think) so I think I am going to go with this pattern for the time being. I am always doing the conversion from string to int as the first thing and then using the int going forward so I am minimizing the amount of string -> int conversions.
  3. I guess my though process behind using a string is that it is recognizable and rememberable, it is easy to know what "WOODEN_AXE" is but not 173.
  4. So I am building a mix of a 2d survival / action rpg (more towards the action rpg) and something that I am going to need to be able to keep track of is loot. I am going to have hundreds of base items I need to keep track of and then also each "entity" that can drop items will have a loot table of what items it can drop that I need to keep track of and I am trying to figure out an efficent way of doing this. I have an initial idea but what to get input on it. NOTE: I am doing this in C# (Unity to be more specific). I want to have 1 main class that would store an array of all possible items that can drop which would probably be read in from some sort of data file. Each of these items would have a unique string identifier so I would want to also store a dictionary<string, int> which would allow to easy access to the item by the identifier like this: Item item = Items[itemDictionary[id]]; I assume this would be more efficent than using a List and doing something like filtering especically if the list of items gets really large. Then each entity would have an array of all the possible items it can drop by storing the string identifiers. Then when the entity needs to drop a piece of loot, I can just pick a random index from that array which will lead me to the item from the main class storing all the items to know which item to drop. Obviously this is a very high level overview of what I am think of implementing and I am sure as I expand thing, stuff might have to change but as a general concept, anyone have any feedback on this?
  5. Thanks for the input all. I have decided to go with using a good portion of procedurally generated content. While I am going to have a number of static maps / map sections, I don't think my game idea is going to have enough functionality the make a fully static world work all that well.
  6. Thanks for the tips all. I ended up continuing to use the noise generator for the general map and was able to find a tutorial that was dumbed down enough for even me to understand (at least enough) on how to create a circular mask with randomization in it in order to have the map completely surrounded by water / beach. I am sure I will have more questions in the future as I am sure I am going to need to do more / better generation but at least this gives me a map that is usable for the time being.   Thanks again.
  7. So I am trying to figure out the best way for me to go about procedurally generating 2d top down world (like RimWorld) for a game I am working on. From everything I have read it seems like I would want to use noise algorithms for generating the world however the kind of math that seems to be required for this type of procedurally generation is not a strength so I am trying to find libraries that will handle most of the heavy lift as far as the math / algorithms go however the results I have been able to generate so far have been unimpressive.   Right now I am just trying to be able to generate the main world land not worrying about small things / resources like tress, flowers, rocks, ore, etc right now.  Want I am looking to be able to do right now is just: Generate a map of X by X size that is surrounded by a certain impassable tile (deep ocean, unbreakable rocks, etc.) Be able to generate a number of different biomes that have logical sense (have a beach biome only next to the ocean, have an oasis biome only within a desert biome, etc.) Make the terrain look somewhat irregular so that each map generation does not look too similar and the biome shapes should be quite varied I have been trying to use a Unity implementation of this library : https://github.com/Auburns/FastNoise_CSharp :  and I am guess I am using it wrong or something as the maps I generally filled of a bunch of oval shapes within ovals shapes. The few tutorials I could find on the topic either 1. Go into building the noise generating algorithm itself which while at a basic level I could probably do but I would be completely screwed if I had to extend that algorithm to what it would probably need to be for my end goal or 2. Talks about stuff at such with no code examples or anything and at such a high level I have not idea what they are talking about. I have no issue with using the data that is generated from the algorithms to be used for generating the world, I just know that I am not the person to actually generate those algorithms themselves.   Are there any good tutorials that have decent code examples about working with 3rd party algorithm libraries (C# would be ideal since that is the language I use with Unity) to generate maps of this nature?
  8. So I have been prototyping a crafting / survival / RPG style game for a couple of weeks now and want to just get a pulse on a topic related to the game from other people. The topic is how important procedurally generate worlds are to this kind of game. There are generally 3 different ways I general see this approached.   Everything is Procedurally Generated   One way it to procedurally generate everything from the land to the resources. Best example of this method would probably be RimWorld / DwarfFortress.   Static World / Random Resources   This is where the world will be static and you will know the layout of the area after you have played it for a while however the resources needed to survival / progress through the game are placed randomly throughout the world. The best example of this would probably be Project Zomboid.   The “benefit” I generally hear about procedurally generated worlds is that it helps prevent the game from getting boring because the world is different each time you play but then you have game like project zombie where I know certain people who can play that game over and over again regardless that it is a static world (at least as far as layout).     Just curious on what other people think, please leave and comment you wish.
  9. So I have been playing around with the idea of building a survival / crafting / rogue-like / etc top down 2D game in Unity3D and been building out very simple implementations of the core gameplay mechanics the past couple of weekends (character animation / movement / attacking, health / stamina system, inventory system, basic GUI for health / stamina / inventory, building / destroying structures, etc.). Now I am working on some basic procedural map generation. From what I have read, the easiest (maybe best for my needs) is to basically do multiple passes of using different noise generation to generate the different layers of my map. Currently I am doing one pass of simplex to generate the basic ground map (dirt / sand, grass, dark grass / swamp) and so far pretty happy with it:     The issue I am now facing is that I want to procedurally generated water surrounding this map to basically acts as a natural barrier to keep the user within this map (instead of just having a random point where the user can't move). Noise generation does not seem like it would work for this since I need it to only be around the map (and be pretty thin but still have some "natural" looking form instead of just being a straight line type thing) and noise generation is well, random.   What would I have to do to achieve something like this?
  10. My performance "concern" was really just more of a guess as to what I think the most intensive thing for the game might be and my lack of understanding of what engines can do. Sure, I am looking to build a 2D game and compared to some 3D games, it would seems to be that graphically, it would be a lot less intensive but it is not unheard of for 2D games to have performance issues (I heard Starbound had some performance issues though it might have had entirely nothing to do with the 2D rendering).   Also, I would imagine not all game engines are optimized for 2D games. From what I have read, Unreal Engine 4 was not all that great for 2D in the early days (though I know they have whatever this Paper2D thing is now and it seems to be improving it’s 2D support). Even Unity is still working on a bunch of 2D features in their engine to optimize that workflow.   I agree that productivity in the engine for focusing on building out the game is high as if one engine is slightly more performant or optimized for 2D games but is 10X harder to use, probably not worth it, at least for me to use it but so is the opposite (much easier to use and just terrible performance), just need to find the engine that has a nice balance. I also know if performance was a huge concern, I know the C++ would be the way to go (or really assembly) but that is one of the trade offs I am will to make to increase my productivity.   Just really looking for engines to try out beside the limited options I have already tried. I have tried Unity and that is pretty good as far as usability (and can’t imagine its performance is all that bad). I have tried UE4 however the coding being C++ and the alternative being the visual blueprints system is a bit of a no-go for me. I also did a bit of research into Lumberyard but there is not a lot of good that has been said about it when it come to 2D. So while I have looked at some of the ones backed by big names, I just want to see if other people might know of other engines that might not have as much written around them as they might not be backed by names like Epic, Unity, Amazon (even though I don’t think of game development when I hear the name Amazon).
  11. So I am looking to play around with the idea of building a top down (maybe with isometric styled graphics) 2D survival / crafting / adventure style game (think Terreria / Starbound but top down or Forsaken Isle which would be a much closer example). Basically a game where I am going to want to generate and save random maps, make a lot of the world destructible (trees, rocks, etc.), allow the player to modify the map, fight monsters and such, and probably a bunch of other smaller mechanics (food / water, health, maybe NPCs, etc.). I am looking to see what would be a good choice for a game engine for this style of game. I am not looking to create my own engine with lower level libraries / framework as that it not a part that is extremely interesting to me not to mention that it would probably take me a while to get something that is anywhere close to ok anyways. I don't mind an engine that requires coding (I actually prefer coding over visual style programming) but I am look for an engine where the coding is not C++ (not a fan of dealing with manual memory management and stuff like that).   Right now I am leaning toward Unity as they have an interface to the engine that I quite like, I don't mind the C# language (even if they are on a older version of mono), and it is something I have some experience with (though it has been a good 2-3+ year since I really did anything with it up until just playing around with it last week). The biggest performance issue I think I would probably face would be just rendering the world. I would like to be able to load maps with hundreds of thousands of tiles but with the world being highly destructible, I imagine I would need lots of colliders to be able to handle that would and that would be performance intensive (I imagine the best way to handle that would be steaming the world in and out as the player moves but of course that is something I have no idea about and would have to figure out or figure out a different way to handle it). I just want to make sure the engine itself can handle something like this so that I can mostly focus on building out the game itself.   Not sure if there is any other engines that I might want to play around with before I dive deeper with Unity.
  12. Unity

      Well the calls are happening in the correct order however I am not sure how to check if PerformMove is being called within the same frame that isMoving is being set to false.
  13. So I am starting out trying to create a top down 2D game that has grid based movement (like Pokemon) I have an implementation of movement functional however it is not really smooth:     It seems to be janky when it stops the current MovePosition and starts the next one. What can I do to make this transition smooth while the key is being pressed? Here is the code: using UnityEngine; using System.Collections; public class PlayerController : MonoBehaviour { public float speed = 5f; private bool isMoving = false; private BoxCollider2D boxCollider; private Rigidbody2D rigidbody; void Start() { boxCollider = GetComponent<BoxCollider2D>(); rigidbody = GetComponent<Rigidbody2D>(); } void FixedUpdate() { if (!isMoving) { bool moveLeft = Input.GetKey(KeyCode.A); bool moveDown = Input.GetKey(KeyCode.S); bool moveRight = Input.GetKey(KeyCode.D); bool moveUp = Input.GetKey(KeyCode.W); if (moveLeft || moveDown || moveUp || moveRight) { Vector3 move = new Vector3(0, 0, 0); if (moveLeft) { move.x = -1; } if (moveRight) { move.x = 1; } if (move.x == 0) { if (moveUp) { move.y = 1; } if (moveDown) { move.y = -1; } } Vector3 end = transform.position + move; boxCollider.enabled = false; RaycastHit2D hit = Physics2D.Linecast(transform.position, end); boxCollider.enabled = true; if (hit.transform == null) { StartCoroutine(PerformMove(end)); } } } } protected IEnumerator PerformMove(Vector3 end) { isMoving = true; float squareRemainingDistance = (transform.position - end).sqrMagnitude; while (squareRemainingDistance > 0f) { Vector3 newPosition = Vector3.MoveTowards(rigidbody.position, end, speed * Time.deltaTime); rigidbody.MovePosition(newPosition); squareRemainingDistance = (transform.position - end).sqrMagnitude; yield return null; } isMoving = false; } }
  14. @Tom Sloper: Yes, I am looking to obtain assets, not how to create them (I have tried in the past at creating both 2D and 3D and it just take me too long with poor results, just not the artist type).   @Servant of the Lord: Thanks, I will take a look at that site.  While I am not looking for super high quality art, I do want something that will not be so ugly that it is going to bug the hell out of me, just something that is nice enough to be able to allow me to work and try to get a some what playable and enjoyable core game (and then like you said, look for more custom art once the game has passed a certain state where it is highly unlikely I am not going to finish it).
  15. So I am starting to try to create a Pokemon styled game with Unity3D and I am a horrible artist and I would much prefer to be developing a game in which I don't cringe every time I look at it.  I am looking for standard 2D top down Pokemon styled sprites that at a minimum would provide: Outdoor tiles (at least a few different ones like short grass, tall grass / bushes, and trees) Character sprite (1 character would suffice) Monster characters (I would like to have at least 2) Bonus points for: Character sprite that has walking / running animations More variation in the outdoor tiles (like houses / buildings, random objects like flower pots, etc.) Indoor tiles Item sprites (like potions, food, etc.) I don't care if they are free or pay for.   I also want to mention that I am not looking to use directly ripped graphics from Pokemon itself, I don't want to go down that road, just looking for graphics that have that general feel.