• 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

7571 Excellent

About Eck

  • Rank

Personal Information

  • Location
    Tennessee, USA
  1. Another thing you can do is use google to search a particular site if that site doesn't have it's own search implemented. So searching for this would search for anything with week of awesome in it, but it would restrict results to topics in the forums. week of awesome site:www.gamedev.net/forums
  2. Another solution is to go in a less controlled direction. I think the game was named Majesty or Majesty 2 when I saw this mechanic first. You didn't actually control your adventurers directly. They'd go out and do adventuring stuff. You could influence their behavior by placing bounties on monsters, lairs, or exploration markers. They'd go out kill the monsters, and come back to your town to spend the money. It was pretty neat. You could do something similar with resources. Instead of directly controlling the peasants, you just increase what you're willing to pay for stone. And more workers will go out and setup stone cutting workshops. There'd still be some peasants working on food and wood harvesting unless the price of stone was SO awesome that you create a gold rush.
  3. Lawyers are expensive. But not having a lawyer can be even more expensive. If you really think the game is worth a lawyer's fee, consider it an investment. I'd check with the rest of the people to see if they're on board with the deal you're outlining. If they have an inflated sense of the amount of effort they put in (or think that you do) then they might want different percentages. If everyone gives the thumbs up, then you can go ahead with the lawyer. And if they want a percentage, maybe they can help with the lawyer bill? Another thing you can do is put in effort to replace their work with your own work. So if you had some sprite and sound guys, replace those things with your own versions. Of course, that will likely cost money, time, and effort. And it might cheeze them off too. - Eck
  4. Once I started applying myself at my game programming hobby, I stopped playing games during the week and programmed for 2-3 hours each night after work. On the weekend, I'd run or play an RPG and sometimes play some computer games, but I'd also code between 5-15 hours. When I was more casual it was more of a weekend thing between 0 and 10 hours on the weekend. I landed my dream job about a year and a half ago - working on Battletech. Since then, I haven't done very much programming on the side. Work has been keeping me pretty busy, plus it's scratching that game-dev itch for me. Though lately I've been finding myself thinking about different projects. @L. Spiro - Good luck in your campaign. I think part of your platform should be: "I am intelligent." I'll vote for you. @deltaKshatriya - If your unasked question is "how do you stay motivated?", watch the movie Collateral. - Eck
  5. This seems far too ambitious for a first project. Starting with your "dream game" project is a common mistake. Often times the project is so grand in scope and beyond the dreamer's skill level that they quickly become overwhelmed and frustrated to the point of quitting. Many of us have been there (myself included). Work up to your dream game by learning the skills on smaller projects so you can do it justice. Cool start on the pixel art. Instead of Paint, check out Paint.NET. It's free and has a lot more features than basic old Paint. - Eck
  6. I'm not trying to be a smart ass, but you implement that by understanding the concepts and applying them. You'd have your world data in a structure you can access. That guy will hold all the game objects and their position. You keep up with your player position, and get the list of objects whose position is within the viewport rect. Then "draw" those to the screen. If the article doesn't really make sense you might want to try to implement a different game. If you feel like you're close to understanding, what part in particular are you having trouble with? - Eck
  7. You're asking about a "viewport" concept where the world data is more than you can actually see on the screen. Here's an article that explains the concepts pretty well: https://www.gamedev.net/articles/programming/general-and-gameplay-programming/a-room-with-a-view-r3901/ - Eck
  8. Many employers won't install random exe's they find on the internet just to check out what you made. Screenshots, blog entries, and YouTube videos are a good way to showcase some of your stuff without them having to install something locally. I had plenty of professional development experience, but no games industry experience. My portfolio was a way to show employers that I was serious about game development. I asked later on and they told me that it played a major role in the hiring decision. https://ecktechgames.com/ - A wordpress site showcasing things I'm proud of https://www.gamedev.net/blogs/blog/1922-ecks-journal-still-flying/ - Developer journal here on game dev https://www.youtube.com/channel/UChg_jEBRep60vMGj1T9buQQ - YouTube channel with some game dev stuff, some personal stuff. I'd probably remove the personal stuff to its own channel - Eck
  9. Hey everyone - long time no post. Sorry about that. I landed my dream job over a year ago and have been pretty busy since then. I'm working at Harebrained Schemes on the new turn-based Battletech game. The last one was over 20 years ago! Come check it out at: http://battletechgame.com/ Today I'm going to talk a little bit about a metadata database (That's really fun to say btw) and how you might use it in your projects. What is a metadata database? Let's start with a couple of definitions. Metadata is just data about other data. And a database is just a structured way of storing and accessing data. So... a metadata database is a structured way of storing and accessing data about other data... Is your mind blown yet? Why use a metadata database? I'm going to look at our units for this example. We have a bunch of units with lots of data stored in separate files. Our unit metadata contains things like the filename, the type of unit: mech, vehicle, turret - and tags that describe the kind of unit that it is: medium, sniper, jump_capable. Instead of hard coding our unit spawn points to a specific unit, we configure the spawn point to ask for a unit with the tags "mech" and "medium" to change things up a bit. Without a metadata database, we'd have to load up every single unitdef into memory, and then loop through all of the data to build a list of the units that match, then select a random entry. With a MDDB, we can write a query that returns the list of units that qualify without having to load every single file and load the unit that we need to spawn. Also, once you put this type of data in a database, you can start writing sql queries to easily get at information. How many maps implement a particular encounter? How many contracts are written for the Escort contract type. Are there any events that can't be triggered because they rely on tags that are never awarded. Some Library Options We're using C# and Unity for our project, and these are the main tools we're using for our SQL needs. http://www.sqlite.org/ - Free Sql engine http://www.mono-project.com/docs/database-access/providers/sqlite/ - Free library for interfacing with SQLite http://sqlitebrowser.org/ - Free visual tool for editing your database schema and writing queries. Some TagSet Query Code Here's some C# I wrote that builds a dynamic bit of sql based on the number of required tags and excluded tags. It wasn't trivial so I figured I'd share it. One requirement I'm not completely happy with is that the tags you ask for have to be in the database. At the start of the function I insert the ones that weren't present. It made the sql a little bit cleaner to look at and get right. For our needs it's not a big deal because we'll only be asking for tags that we care about, but if an end user is typing in random stuff you'll want a slightly different approach. Also I made one change to the Schema since after the graphic was made. I dropped the TagID and just use Name as the primary key. TagSetTag then drops its TagID column and gets a TagName column to point to Tag. I recommend that datamodel instead of the one shown, but our fans made the graphic for the data model and I didn't have a way of updating it easily. The code presented matches the old way. public static List<TagSet_MDD> GetTagSetWithRequiredTags(this MetadataDatabase mdd, TagSetType tagSetType, TagSet requiredTags, TagSet excludedTags) { // Get the tag rows for the specified tags so we can get their database ids. List<Tag_MDD> requiredTagRows = GetOrCreateTagsInTagSet(mdd, requiredTags); List<Tag_MDD> excludedTagRows = GetOrCreateTagsInTagSet(mdd, excludedTags); // Here's what the query will look like for 2 requried tags and 1 excluded tag /* select ts.* from TagSet as ts -- Required Tags inner join TagSetTag as tst0 on ts.TagSetID = rtst0.TagSetID inner join TagSetTag as tst1 on ts.TagSetID = rtst1.TagSetID -- Excluded tags left join TagSetTag as etst0 on ts.TagSetID = etst0.TagSetID and etst0.TagID='tag id 3' where rtst0.TagID = 'tag id 1' and rtst1.TagID = 'tag id 2' and etst0.TagID is null */ string queryText = "SELECT ts.* FROM TagSet ts "; string joinText = string.Empty; string whereClause = string.Format("WHERE ts.TagSetTypeId = {0} ", (int)tagSetType); // Join to one instance of TagSetTag for each required tag. for (int i = 0; i < requiredTagRows.Count; ++i) { joinText += string.Format(GTSWRT_RequiredInnerJoinFormat, i); whereClause += string.Format(GTSWRT_RequiredWhereClauseFormat, i, requiredTagRows[i].TagID); } // Join to one instance of TagSetTag for each excluded tag for (int i = 0; i < excludedTagRows.Count; ++i) { joinText += string.Format(GTSWRT_ExcludedLeftJoinFormat, i, excludedTagRows[i].TagID); whereClause += string.Format(GTSWRT_ExcludedWhereClauseFormat, i); } // Assemble the query text and return the results. queryText = queryText + joinText + whereClause; List<TagSet_MDD> tagSetList = mdd.Query<TagSet_MDD>(queryText).ToList(); return tagSetList; }
  10. What happened to the Beginner's FAQ? I was going to point an aspiring young game developer towards it, but couldn't locate it myself. :) - Eck
  11. If you want a career in game development, you need to learn how to make games. The best way to learn how to make games, is to make games. Find yourself a game engine with tutorials that you like. I recommend Unity and C#. The official tutorials are awesome and the Unity Asset store means you don't have to rely on your own programmer-art skills. :) It looks like the beginner FAQ got pulled from the site. I'll ask about that. But here's an article that is a decent roadmap for how to get better at making games. It tells you which games to make first and why. I can't recommend it enough. :) https://www.gamedev.net/articles/programming/general-and-gameplay-programming/your-first-step-to-game-development-starts-here-r2976 - Eck
  12. Thanks. I saw the publish date thing when I was editing it and I may have chosen a date in the future, but then I decided to check publish immediately. Maybe I crossed the streams when I did that. If it shows up tonight at midnight, that's probably the bug.
  13. I published my journal entry about an hour ago. It shows up as the first entry in the "Latest Developer Blogs" section on the front page of gamedev. But it doesn't show up when I click the Blogs link to look at the list of blogs. https://www.gamedev.net/ - My journal entry shows up https://www.gamedev.net/blogs - My journal entry is absent https://www.gamedev.net/blogs/entry/2263067-using-a-metadata-database/ - My journal entry. I started the entry a while ago, but finally published it today. I dug back through a few pages of the blogs but didn't see it hiding back in time either.
  14. The graphics and animations are pretty darn sweet. I like the little flip animation he does when he turns around. The music could use some love, and the first track starts to get a little annoying towards the end. I'd probably look for some free options or pay a composer to write some stuff for it. The rest of your game is looking really sweet though!
  15. I like the art style of the game. It looks really nice.