Jump to content
  • Advertisement

Search the Community

Showing results for tags 'Learning'.

The search index is currently processing. Current results may not be complete.


More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • Audio
    • Music and Sound FX
  • Business
    • Business and Law
    • Career Development
    • Production and Management
  • Game Design
    • Game Design and Theory
    • Writing for Games
    • UX for Games
  • Industry
    • Interviews
    • Event Coverage
  • Programming
    • Artificial Intelligence
    • General and Gameplay Programming
    • Graphics and GPU Programming
    • Engines and Middleware
    • Math and Physics
    • Networking and Multiplayer
  • Visual Arts
  • Archive

Categories

  • Audio
  • Visual Arts
  • Programming
  • Writing

Categories

  • Game Developers Conference
    • GDC 2017
    • GDC 2018
  • Power-Up Digital Games Conference
    • PDGC I: Words of Wisdom
    • PDGC II: The Devs Strike Back
    • PDGC III: Syntax Error

Forums

  • Audio
    • Music and Sound FX
  • Business
    • Games Career Development
    • Production and Management
    • Games Business and Law
  • Game Design
    • Game Design and Theory
    • Writing for Games
  • Programming
    • Artificial Intelligence
    • Engines and Middleware
    • General and Gameplay Programming
    • Graphics and GPU Programming
    • Math and Physics
    • Networking and Multiplayer
  • Visual Arts
    • 2D and 3D Art
    • Critique and Feedback
  • Community
    • GameDev Challenges
    • GDNet+ Member Forum
    • GDNet Lounge
    • GDNet Comments, Suggestions, and Ideas
    • Coding Horrors
    • Your Announcements
    • Hobby Project Classifieds
    • Indie Showcase
    • Article Writing
  • Affiliates
    • NeHe Productions
    • AngelCode
  • Topical
    • Virtual and Augmented Reality
    • News
  • Workshops
    • C# Workshop
    • CPP Workshop
    • Freehand Drawing Workshop
    • Hands-On Interactive Game Development
    • SICP Workshop
    • XNA 4.0 Workshop
  • Archive
    • Topical
    • Affiliates
    • Contests
    • Technical
  • GameDev Challenges's Topics
  • For Beginners's Forum

Calendars

  • Community Calendar
  • Games Industry Events
  • Game Jams
  • GameDev Challenges's Schedule

Blogs

There are no results to display.

There are no results to display.

Product Groups

  • GDNet+
  • Advertisements
  • GameDev Gear

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


Website


Role


Twitter


Github


Twitch


Steam

Found 152 results

  1. I'm taking my first steps in programming with Direct3D. I have a very basic pipeline setup, and all I want to get from it is an antialiased smooth image. But I get this: First, I can't get rid of stair effect though I have 4x MSAA enabled already in my pipeline (DXGI_SAMPLE_DESC::Count is 4 and Quality is 0): And second, I get this noisy texturing though I have mipmaps generated and LINEAR filtering set in the sampler state. Am I missing something or doing wrong? I would appreciate any advice on that. Here is my code: 1) Renderer class: 2) Vertex shader: 3) Pixel shader: Thank you in advance!
  2. I'm taking my first steps in programming with Direct3D. I have a very basic pipeline setup, and all I want to get from it is an antialiased smooth image. But I get this: First, I can't get rid of stair effect though I have 4x MSAA enabled already in my pipeline (DXGI_SAMPLE_DESC::Count is 4 and Quality is 0): And second, I get this noisy texturing though I have mipmaps generated and LINEAR filtering set in the sampler state. Am I missing something or doing wrong? I would appreciate any advice on that. Here is my code: 1) Renderer class: 2) Vertex shader: 3) Pixel shader: Thank you in advance!
  3. I'm taking my first steps in programming with Direct3D. I have a very basic pipeline setup, and all I want to get from it is an antialiased smooth image. But I get this: First, I can't get rid of stair effect though I have 4x MSAA enabled already in my pipeline (DXGI_SAMPLE_DESC::Count is 4 and Quality is 0): And second, I get this noisy texturing though I have mipmaps generated and LINEAR filtering set in the sampler state. Am I missing something or doing wrong? I would appreciate any advice on that. Here is my code: 1) Renderer class: 2) Vertex shader: 3) Pixel shader: Thank you in advance!
  4. I'm taking my first steps in programming with Direct3D. I have a very basic pipeline setup, and all I want to get from it is an antialiased smooth image. But I get this: First, I can't get rid of stair effect though I have 4x MSAA enabled already in my pipeline (DXGI_SAMPLE_DESC::Count is 4 and Quality is 0): And second, I get this noisy texturing though I have mipmaps generated and LINEAR filtering set in the sampler state. Am I missing something or doing wrong? I would appreciate any advice on that. Here is my code: 1) Renderer class: 2) Vertex shader: 3) Pixel shader: Thank you in advance!
  5. I'm taking my first steps in programming with Direct3D. I have a very basic pipeline setup, and all I want to get from it is an antialiased smooth image. But I get this: First, I can't get rid of stair effect though I have 4x MSAA enabled already in my pipeline (DXGI_SAMPLE_DESC::Count is 4 and Quality is 0): And second, I get this noisy texturing though I have mipmaps generated and LINEAR filtering set in the sampler state. Am I missing something or doing wrong? I would appreciate any advice on that. Here is my code: 1) Renderer class: 2) Vertex shader: 3) Pixel shader: Thank you in advance!
  6. I'm taking my first steps in programming with Direct3D. I have a very basic pipeline setup, and all I want to get from it is an antialiased smooth image. But I get this: First, I can't get rid of stair effect though I have 4x MSAA enabled already in my pipeline (DXGI_SAMPLE_DESC::Count is 4 and Quality is 0): And second, I get this noisy texturing though I have mipmaps generated and LINEAR filtering set in the sampler state. Am I missing something or doing wrong? I would appreciate any advice on that. Here is my code: 1) Renderer class: 2) Vertex shader: 3) Pixel shader: Thank you in advance!
  7. Ruslan Sibgatullin

    Seven Tips for Starting Game Developers

    Originally posted on Medium Well, it’s been a ride. My first game Totem Spirits is now live. I’m not gonna tell you how awesome the game is (since you may try it yourself :) ). Instead I want to share my own experience as a developer and highlight some useful tips for those interested in game development. First of all, short background information about myself — I’m 26 now and have about 22 years of a game playing experience (yes, that’s right the first games I played at age 3–4, one of them was Age of Empires) and slightly more than three years of professional career as a Java developer. Alright, let’s dive into the topic itself now. There are seven tips I’ve discovered while creating the game: 1. The team is the main asset. Yes, even the smallest game dev studios have a team of a few people. I literally give a standing ovation to those guys who are able to create a whole game product only by themselves (I know only one example of such). In my team there were one artist, one UX-designer\artist, one sound designer, and myself — programmer\game designer\UX-designer. And here comes the first tip: you should tip 1: Delegate the work you are not qualified in to the professionals. Just a few examples why: Firstly, I tried to find the sounds myself, spent a few days on it and ended up with a terrible mix of unsuitable and poorly created sound samples. Then, I found a guy who made a great set of sounds for less than $15. The first version of promo video was, well, horrible, because I thought I’m quite good at it. Fortunately, I met an UX-designer who made this cool version you may find at the beginning of this post. I can see now why there are so many, let’s say, strange-looking games with horrible art assets and unlistenable music. Well, you just can’t have the same level of professionalism in everything. 2. Game development is not free. You would have to spend your time or\and your money. I mean, if you want to create a good-looking and playable product you need to invest in it. To be honest, I think that not each and every product out there in the markets can be called a “Game”, since many of them are barely playable. As for my game I’ve spend about $1200 on the development and slightly more than 2 years of my life. Still think that it’s worth every penny and every minute, since I gained a lot of experience in programming which boosted my professional career. tip 2: Take it seriously, investments are necessary. 3. Respect the product. The development process is painful, you will want to quit several(many)times. But if the game you’re building is the one you would enjoy playing yourself it would make the process more interesting and give it additional meaning. The third tip is my main keynote. tip 3: Build a game you would want to play yourself. 4. Share it with the closest friends and relatives, BUT… tip 4: …choose beta-testers wisely. If you don’t want to pay extra money for professional testers then friends\colleagues\relatives are gonna be the first ones to test the game. Try to find what kind of games they like since probably not each of them represents your target audience. And I suggest sharing the product not earlier that in the “beta” stage — otherwise you would need to explain a lot of game rules and that would harm the user experience and you gain almost nothing useful out of it. 5. Make use of your strengths. It will cost you less if you know how to code or how to create an assets. In my case, I didn’t need to hire a programmers or game designers. No one is able to implement your idea better than you, that’s why I suggest to tip 5: Take as many roles in the project as possible. But do not forget about the tip 1. 6. Don’t waste too much time on planning. No, you still need to have some kind of a roadmap and game design document, just tip 6: Make documentation flexible. You would probably need to change it many times. In my case a lot of great ideas had come during the development process itself. And don’t be afraid to share your ideas within a team and listen to their ideas as well! 7. You will hate your game at some point. That may sound sad, but that’s true. After a ten-thousandth launch you just hate the game. You may be tempted to start a new “better”, “more interesting”, etc. project at that point, but, please, tip 7: Don’t give up! Make it happen. Share the game with the world since you’ve put a lot of effort into it. Those tips I’ve discovered mostly for myself and more than sure that for a game industry giants the list above may sound like a baby talk. Nevertheless I still think it might be useful for those dreaming to create the best game ever.
  8. Ruslan Sibgatullin

    First game crash report

    Originally posted on Medium The Totem Spirits game is in the market for a few weeks already and this day came inevitably — I received the first crash report. To be honest, there were 5 of them, but all from one device, so the error is the same. I was truly surprised by this! My game was tested by several people and already downloaded by 50+ more. There were no errors till November 7th when someone with Samsung Galaxy Trend Plus (768MB RAM, Android 4.2) got the game. If by any chance you are reading this article, please, know that I’m deeply sorry that you can’t play! Then, I checked the error (aka stack trace) and became even more surprised because this error… told me nothing. Of course I can find the exact place in the code where this problem occurred but there is literally nothing wrong with it! (It works for 50+ other devices, remember?). Moreover, it is not reproducible on any of my devices — I even ran the game without any issues on an old Acer Liquid MT (which BTW was released 7 years ago). Looks like a dead-end one might say, but I didn’t give up. There are several ways to ask for help in the developer’s world. In this case I decided to create a topic on libGDX (game engine) forum and ask them directly because the issue seems to be in the core library itself. In addition to this I also asked a question on StackOverflow (so unpredictable). Now it’s time to give a little insight into the error. The crash report in Google Play Console looks like this: Even if you are not familiar with libGDX, you may find some keywords like: xml, parser, fileHandle, rootElement from which you can guess that the error lies somewhere in xml file parsing. And this is totally correct! The application on this device failed to parse locally stored file needed for the game to behave properly. What was even stranger — look at the stack trace once again. Have you noticed that there are no custom messages in exceptions? But the developers of the game engine are quite smart guys so the messages are actually exist in the source code. Looks like magic to me… Although, there were some problems with the engine itself too, I fixed’em already with this PR . As sad as it sounds, so far there is no resolution, but I’m not going to give up on this. When you develop for hundreds different Android devices occasional errors are inevitable. It is just impossible to test a product on each and every smartphone out there. But I believe every problem should be fixed anyhow. After all, if there is no other way some devices may be marked as “Excluded” in Google Developer Console. No support — no problems, right? :)
  9. Originally posted on Medium I released my first game approximately a month and a half ago and actually tried almost all of the methods I could find on various websites out there - all of them will be listed here. With this article I want to share the story of my “promotion campaign”. The very first thing I did was the Medium account creation. I decided to promote the game using thematic articles about game development and related stuff. Well, actually, I still do this, even with this article here :) In addition to Medium the same articles were posted to my Linkedin profile, but mostly to strengthen it. Moreover, you may find a separate topic on Libgdx website (the framework the game is written on). Then, the press release was published. Actually, you should do a press release the same day as the game launch, but I didn’t know about that back then. And to be honest, all of the methods above were not quite successful in terms of game promotion. So I decided to increase the game presence around the web and started to post articles on various indie-game dev related websites and forums (that's how this blog started) Finally, here comes the list of everything created over the past month (some in Russian, be aware): https://www.igdb.com/games/totem-spirits http://www.slidedb.com/games/totem-spirits https://forums.tigsource.com/index.php?topic=63066.0 https://www.gamedev.net/forums/topic/693334-logical-puzzle-totem-spirits/ http://www.gamedev.ru/projects/forum/?id=231428 https://gamejolt.com/games/totem_spirits/298139 https://vk.com/gameru.indie?w=wall-9222155_202256 https://test4test.io/gameDetails/24 Not so many one can say. But I could not find any more good services! If you know one, please, share in comments. What are the results you may ask? Well, I have to admit that they are terrible. I got a little less than a hundred downloads, and I’m pretty sure that most of them from the relatives and friends. And you can’t really count such as a genuine downloads, since I literally just asked them to get my game on their smartphones. But the good thing is that many of those who played Totem Spirits shared their impressions about the game. They truly liked the product! That was so pleasant to hear their thoughts. I know in person several people who finished the game with all diamonds (a.k.a stars) collected. Still, I don’t regret the time spent on the game because I’ve learnt a great lesson — two years of development is a way too much for such simple and narrow-profile game. It seems that now is not a good time for such complicated puzzlers or I just failed badly with the promotion) Now the next plan is to develop and launch a game in a maximum 160 hours (two working months). The coding process has already begun, so hopefully in January you will see the next product of Pudding Entertainment company!
  10. Since my last update, i have implemented most of the attributes in Cycling - The board game. Quick recap: the game is about getting to the finish line first. Each turn, each player rolls a dice (D6) and moves the amount of squares. The odds of the dice are rigged based on the player's strength (higher strength = better odds). Next to the dice roll the player can gain bonuses to move additional squares. These bonuses are based on their attributes (which can range from 1 - 20). Now that i have implemented them, i have to check if they add fun to the game. Fun is of course hard to measure, but what i am aiming for mostly is balance between the different elements. For example, if one attribute is much more important than others, the others are irrelevant. To test them, i left my computer running for a night and simulate over 600 different races with different AI players (with every time different attributes and strength). I now had a lot of data points to analyse with. I decided to use a multiple regression analysis, where i analysed the impact of the strength and all the different attributes on the outcome of the race. This led to the following results: R-squared: 0.43 Coefficient of different attributes Strength -4,59 Climbing -3,60 SoloRiding -3,06 GroupTechnique -3,04 Flair -1,57 Sprinting -0,93 Restoration -0,84 Starting Position -0,73 Determination -0,51 Composure -0,36 Luck 0,12 Conclusions This stuff really makes me feel like a nerd, which is nice 😉 The R squared means that more than half of the results are not explained by this model The fact that all attributes are negative is correct (the higher the attribute, the lower your total final time) The attribute luck has a different sign, which basically means that a lower attribute is better (although the coefficient is very small, so technically it means that it is not relevant) Strength is more important than all the different attributes Climbing, solo riding and group technique are most important Composure and determination hardly matter at all I am somewhat happy with these outcomes, but find it difficult to determine my final goal here. I think it is not a good idea to have all attributes at (roughly) the same value, since then it won't matter which one you improve at all. On the other hand, an extremely large difference between attributes, means that your strategy should be to simply focus on the best attributes, which is also technically not really fun. For now, my next move will be to make the lowest three attributes somewhat more influential so that they matter more. When that is done, i am just going to continue playtesting manually and get a feeling for how the game is running. At that point i will also upload a new version, so i can (hopefully) get some feedback on the game itself. In the meantime, please feel free to try out the game yourself (link) or even better, let me know what your ideas would be to further balance the game. Thank you once again for reading!
  11. Game design starts with an idea ... But at the same time I did not find a single course or book where it would be talked about how to generate ideas and how to do it better. I spent some time studying the question, and I identified four techniques that can be used by the game designer in creating ideas. There are, of course, more techniques, but many of them are designed to solve problems than to generate ideas. The techniques are called: Concentration, Brain Storm, Scamper and Ramsey. Concentration This method is the most common and we are all able to use it ourselves, without any training. In fact, you think until you have an idea. But in this case, too, has its own characteristics, which I learned from one biochemist, named Motonari Uesugi, who had a course in biochemistry. He talked about a scientist who developed DNA cloning. The road to the research center, where the scientist worked, was walking along a rocky, winding road running along the shore of the ocean. Every day, on the way to work and from the work of a scientist, a lot of excellent ideas were visited, while at the same time he could not come up with anything at work. He put forward the assumption that thinking in a stationary atmosphere a person will always come to the same ideas, but being in a changing atmosphere a person will generate constantly different ideas. Further research has shown that any changes in the environment affect positively the generation of ideas: To ride an unknown route, take a walk in an unusual time for you and so on. Further it turned out that not only the change of environment influenced the generation of ideas, but also any new information was obtained. Therefore, curious people that are constantly learning something new can generate ideas better. Therefore, for the game designer, curiosity and constant study of something new are vitally important. Brainstorm It is the most common and well-known method in the industry. Many companies use this method and this is the only method that I learned about from the games industry. To perform this method, only people (10-20) and premises are needed. The method is performed in 3 stages. People are divided into two groups: Participants and the Commission. The first stage is "Statement of the task". It is held by the participants. In the case of creating games, the task is issued from the number of resources: the amount of money, the number of team members and their specialization, the amount of time to develop. All the collected information on resources can adequately create an idea of what kind of project the team can create. The second stage is the "Generation of Ideas". It is held by the participants. People simply begin to offer and complement each other's ideas. Any ideas are collected, even the most delusional ideas, for example: a plumber saving a princess or a super fast blue hedgehog. When all the ideas are collected they are transferred to the third stage. The third stage is "Grouping and selection." It is held at the commission. Here already the second group collected ideas evaluates and chooses the best idea. For this method it is important that the group of people for the brainstorming be as diverse as possible. Therefore, many companies also strive to collect a diverse team (different races, nationalities, social status, history, gender). Also, if participants in the assault team are members of the game development team, the idea and concept of the game will be perceived as the result of the collective work of the team. This improves the atmosphere in the team and will increase the motivation of team members. Scamper It is very simple and convenient method. It is especially useful when working with unusual and unloved types of games for you. It is very easy to use and almost always brings results. In fact, this is not one method, but a whole set of methods that the game designer changes in turn, until he finds his idea. Each of the letters is a reference to one of the methods of generating ideas. In this case, it is better to disassemble each of the methods separately. Substitute Replace. You simply replace something in an existing project and see how everything will look now. In the case of games, you need to change the mechanics in the game. Think: What if I replace it? Example: Noitu love 2 In this game there are three game characters that open in their time. The plot game and most levels are the same for all characters. But by including games for different characters, the game begins to be felt completely differently. The reason for this is the different mechanics of each of the characters. Sometimes, it seems that these are different games, although the levels and behavior of the enemies remained the same. I can talk a lot about this topic, but it will be better if you sit down and try it yourself. Combine Combine. You take two genres that already exist and try to mix them together. Think about it. What if you take these two or more genres of games and cross? Example: Borderland. This series of games is a combination of shooter and RPG. From the shooter game got a first-person view and the main combat mechanics. From RPG the game got a level system, experience, pumping, all sorts of equipment with different indicators and special abilities that a player can learn and use in combat. Adapt Adapt. To do this, you take existing old and forgotten mechanics and update them to new technologies and time. Think about it. What old mechanics can I use? Where to use it? And how will this mechanic change? Example: AR and old educational games. We all know the game Pokemon GO. But few people know that the mechanics, on which it is based, was created long before the advent of mobile phones. Eric Klopfer talked about an educational game that used maps and real places for learning. But this mechanics did not find its popularity because of its inconvenience. But over time, there were mobile devices that could use this mechanic without unnecessary problems. Since 2012, this mechanics has returned with the name Augmented Reality. Modify Edit. Here you refer all the games with a change in the aesthetics and level of the objects of the game. Unlike "replace" here the aesthetics of the game changes more than its mechanics. Think about it. What if you make such a game about something bigger or something less, perhaps something else? Examples: The Sims and SimCity. In the first case, we have a simulator for managing the family of people and their dwelling, and in the second, a simulator controlling the city and its inhabitants. The concept of the game has remained the same, it is an economic and spatial simulator. The difference in games is only in the levels of objects: in the first case it is only a house with a small family, and in the second it is a city. Put Apply. You simply take the existing mechanics and find a new application for it. Think about it. How else can you use this mechanics? Example: Undertale. In the case of Undertale there is a system of experience and levels, but it has a completely different meaning than in other games. If in most games these indicators show the power and development of the character during the game, then in this game this mechanics and characteristics is the player's karma. Eliminate Exclude. This method requires the game designer to cut and exclude some mechanics in the already existing type of games. Think about it. What can be cut out of the game and how will it work then? Example: Ultimate Epic Battle We all know the strategists: we collect resources, build the base, build the army, destroy the enemy army, destroy the enemy base and win. But if we exclude everything related to the collection of resources, construction and development base. What's left? And there will be Ultimate Epic Battle, here you just generate armies on the battlefield and watch them fight. Reverse Expand. The games industry is also flexible to the action of stereotypes, like any other information sphere. And sometimes breaking these stereotypes can get very interesting projects. Think about it. What if we do not do here like everyone else? What if we did the opposite? Example: Overlord and dungeon keeper. In most fantasy games, the main character is a positive character saving the world from evil. In the same games you had to play for the villain. What made them much more interesting than most other projects in fantasy style. The Ramsey method. This is the most difficult of the methods. This method was taught to me by psychologists and for this reason it is so complex and heavily populated. But you will need it, too, if you want to become a high-class specialist. What is this method for? One day you will be hired as a game designer and your director will say to create a game on a very specific topic, for example, to create a game about Einstein, fairy tales of the Brothers Grim, or "Alice in Wonderland". And you immediately rested against the wall. Ramsey wrote a theory that, if you take a large amount of information and start looking in it closely and manically, you can find new information or find inconspicuous links. This explains why people with various psychological disorders, like paranoia and schizophrenia, can everywhere find evidence of their rightness and their theories. This theory can also be used in the opposite direction, creating previously unobtrusive concepts at first glance. The essence of this method is that you collect the maximum amount of information on the topic that you need to assemble the games. And then you start to study this information, looking for hidden connotations and imperceptible connections in it until the concept of the game is collected from these pieces. The effectiveness of this method depends only on two factors: the amount of information collected and the effort spent studying this information. Let me give you a couple of examples. The game about Einstein is Brad. Two years after I played the game, I accidentally took the book "Einstein's Easy Lessons". My brain just exploded, many moments, phrases and mechanics were described throughout the book. The game about the Brothers Grimm - American McGee's Grimm. In the beginning, I did not understand why in these games the twisting and dullness of fairy tales. But then I met one person. He told me that the fairy-tale brothers' tales have changed a lot since that time they were in the original. It was darker times and tales, respectively, were much gloomier, but over time, adaptation of fairy tales to a new time was in progress. As a result, after reading the original tales of the brothers' make-up and the current editions, the person will have a vivid sense of contrast. This is shown in the game. This is a sense of contrast between what we know these fairy tales and what they really were written. The game about "Alice in Wonderland" - American McGee's Alice and Alice: Madness Returns. In the game you will meet most of the characters from the book, and you will visit Wonderland. The game designer tried to imagine what happened to the main character, so that Wonderland appeared in her head. For the main character, Wonderland is the inner world of her mind. As a result, the story began to consist not only of events in Wonderland, but also the events of real life, which is mirrored in the Wonderland of Alice. As you have noticed, most of such a game plan can be called unusual and sometimes strange, which does not make them bad. So if your director wants to create a game based on his favorite music group or his favorite book, now you know what to use. This is my first article and I hope that it has been useful to you.
  12. Objective The main objective of this blog post is to give you an idea about ScriptableObject in Unity. What is Scriptable Object? What is the difference between ScriptableObject and Monobehaviour class? What are Pros and Cons of Scriptableobject? How to use ScriptableObject? Let’s undertstand all the questions by taking one ride of this blog about ScriptableObject According to Unity API documentation, "ScriptableObject is a class you can derive from if you want to create objects that don't need to be attached to game objects." Confuesed..? Don’t worry, if you didn’t get it. Here, I will Explain what it means. As we know, with Unity, everything is an Object. Monobehaviours are one of the Objects. GameObjects: In your scene, you can move around with transform. ScriptableObject is a kind of Object but, it can only Contain Data. So, they don’t get involved in the actual game. I hope you understood the definition of ScriptableObject. Let's discuss Pros and Cons of ScriptableObject. Prose of ScriptableObject: Built into Unity They’re very well maintained by Unity. You can interact with them very easily in Unity inspector. Can be saved as Assets You can create it as a mini file inside your project. You can update that and save that as per your game requirements. Can save during runtime If you change something during runtime it will actually remember that. Internal Solution When you are trying to get the data during run time of the game, you don’t worry about parsing external files which will come into play more. Large amounts of Data You can save millions of integers inside of a ScriptableObject. So, there’s a lot of space(no size limit function). Add to Structure as you go As you’re building a scriptable object and create few instances of it and realize ,ohh I need a new setting for ‘moveSpeed’ or whatever additional variable you need you can add, it won’t disrupt your variable. Deleting variable can have a little bit negative impact. Cons of ScriptableObject: Requires an editor scripting If you want to make assets out of scripting then you have to know a little bit about it. Can’t edit outside Unity If you’re working strictly with Unity that’s not really a huge issue. But if you have like team base solution, where you want to send files to someone and have them edit then it won’t work. Can’t save once deployed Can’t save during runtime,once you’ve built the game meaning that this is not solution for saving a player’s data.This is only for saving game development data. Let's take one example to understand how to use ScriptableObject in game. Let me give you one task first. Suppose, we have 10 level game and at each level the behaviour of enemy will change. Any Ideas, how you will do this?? Ahh, You might think that make 10 prefab of 10 different enemy and assign it to each level. Right?? Are you sure, it really a good practise? Actually, the answer is No. "Because one enemy object may have 4 variable and Update() function with it, and suppose is uses 4 Mb of memory, so 10 level enemy may require 40 Mb of memory amount." So, here is the solution. Use ScriptableObject to store data of enemy Object. Let’s, develop our mini game with ScriptableObject. First, I will create a simple script without using a ScriptableObject. (As per our first thought about creating different prefab of each different enemy and assign it to each level ) Step 1 Create an empty GameObject name it Enemy. Step 2 Create C# script and name it EnemyMove Write following code in EnemyMove.cs public class EnemyMove : MonoBehaviour { #region PUBLIC_VARIABLES public string name; public int moveSpeed; public Color color; public string colorName; public SpriteRenderer spriterendere; #endregion #region PRIVATE_VARIABLES private float speed; Vector3 newPosition; #endregion #region UNITY_CALLBACKS void Update () { ChangeSpeed(); gameObject.name = name; spriterendere.color = color; newPosition=transform.position; newPosition.y = Mathf.Sin (Time.time) * speed; transform.position = newPosition; } #endregion #region PROVATE_METHODS private void ChangeSpeed(){ speed = Mathf.MoveTowards (speed,moveSpeed,Time.deltaTime); } #endregion } Step 3 Assign it to empty GameObject(Enemy). EnemyMove script has three public variables. If game has so many enemy GameObject with enemyMove script with it then uses lots of memory. For that as per our solution ScriptableObject, we can make a EnemyData script Instead of storing these variable within EnemyMove script. Step 4 Create C# script name it EnemyData. which inherits ScriptableObject instead of Monobehaviour. Write the following code in EnemyData.cs. public class EnemyData : ScriptableObject { #region PUBLIC_VERIABLE public string name; public int moveSpeed; public Color color; public string colorName; #endregion } Step 5 Change the code inside ‘EnemyMove’,which was previously created. Create One public variable ‘data’ which is the reference of ‘EnemyData’. Remove the public which is already in ‘EnemyData’ Change according to following code. public class EnemyMove : MonoBehaviour { #region PUBLIC_VARIABLES public EnemyData data; public SpriteRenderer spriterendere; #endregion #region PRIVATE_VARIABLES private float speed; Vector3 newPosition; #endregion #region UNITY_CALLBACKS void Update () { ChangeSpeed(); gameObject.name = name; spriterendere.color = data.color; newPosition=transform.position; newPosition.y = Mathf.Sin (Time.time) * speed; transform.position = newPosition; } #endregion #region PROVATE_METHODS private void ChangeSpeed(){ speed=Mathf.MoveTowards (speed,data.moveSpeed,Time.deltaTime); } #endregion } Now you can see that inside the Inspector for Enemy GameObject on ‘Data’ variable will appear, Any idea..what you suppose assign over here?? Follow me... Step 1 Add one line in EnemyData.cs as follow [CreateAssetMenu(fileName="EnemyData" ,menuName="Enemy Data")] public class EnemyData : ScriptableObject { #region PUBLIC_VERIABLE public string name; public int moveSpeed; public Color color; public string colorName; #endregion } Step 2 Create one folder Game data and do following Step 3 Name it as you like. Now, you can see all the variable inside the EnemyData in inspector window, you can change values of variable here. Step 4 Assign this into ‘EnemyMove’ script I am sure you got all the answers now. Conclusion ScriptableObject are really good for the fact that they can break your data into more sizeable chunks. So that you’re not eating up a lot of memory. ScriptableObject is only for development purpose.
  13. MiniAlfa

    Horrible soundtrack

    I am now making an soundtrack for my game, but halfway i realized me it was horrible. Can somebody please give me some tips to improve it Ps: i have used Bosca Ceoil to make it. Pss: I'm not english, so don't get upset about my english 1.wav
  14. Hi Folks, I am learning Artificial Intelligence and trying out my first real-life AI application. What I am trying to do is taking as an input various sentences, and then classifying the sentences into one of X number of categories based on keywords, and 'action' in the sentence. The keywords are, for example, Merger, Acquisition, Award, product launch etc. so in essence I am trying to detect if the sentence in question talks about a merger between two organizations, or an acquisition by an organisation, a person or an organization winning an award, or launching of a new product etc. To do this, I have made custom models based on the basic NLTK package model, for each keyword, and trying to improve the classification by dynamically tagging/updating the models with related keywords, synonyms etc to improve the detection capability. Also, given a set of sentences, I am presenting the user with the detected categorization and asking whether its correct or wrong, and if wrong, what is the correct categorization, and also identify the entities. So the object is to first classify the sentence into a category, and additionally, detect the named entities in the sentence, based on the category. The idea is, to be able to automatically re-train the models based on this feedback to improve its performance over time and to be able to retrain with as less manual intervention as possible. For the sake of this project, we can assume that user feedback would be accurate. The problem I am facing is that NLK is allowing fixed length entities while training, so, for example, a two-word award is being detected as two awards. What should be my approach to solve this problem? Is there a better NLU (even a commercial one) which can address this problem? It seems to me that this would be a common AI problem, and I am missing something basic. Would love you guys to have an input on this. Thanks & Regards Camillelola
  15. Objective The main objective of this blog post is to give you an idea about how to do Sprite Sheet Animation in Unity3D. Are you looking for animation in your 2D games? Do you want your Character have some real feel and look more living ? Then here it is, I’ve brought you some easy and quick ways to make your game look attractive and give a real life feel to the character of your game. In this post we will learn how to give animation to your game character with 2 easy ways. By Animation And Animator controller. By Scripting. Interesting right..? So tight up your seat belts and get ready for this joyful ride! Let’s start with the first option. 1. By Animation And Animator Controller First set up the scene like the given image. Don't forget to add sprites folder that will be use for the the different animation to your scene, if you don't have the Sprites you can download it from here. Create a 2D sprite object and assign the first sprite of the idle Animation to it. (Idle animation is the animation in which the character is just standing still and breathing no other activity). Create the Script named AnimationWithScripting and attach it to hero Object. Now, follow the below steps to create the different animation. First select all the sprites of Idle Animation folder and drag it on our hero object and drop there, a new animation will be created. Then Unity will ask to name the animation name it as Idle. Then select all the sprites of Kick Animation folder and drag it on our hero objectand drop there , a new animation will be created. Again Unity will ask to name the animation name it as Kick. Then select all the sprites of Walking Animation folder and drag it on our hero objectand drop there, a new animation will be created. Again Unity will ask to name the animation name it as Walk. I hope you all are ready with your 3 animations. The animator controller will be automatically added to our hero object. Now set the transitions and trigger as per the below image. See what Triggers are to be set in the following transitions: Transition Trigger Idle -> Walking transition Walk Walking -> Idle transition Idle Kick -> Walking transition Walk Walking -> Kick transition Kick Idle -> Kick transition Kick Kick -> Idle transition Idle Let’s see the code is to be written in the Script ScriptToAnimate.cs using UnityEngine; using System.Collections; public class ScriptToAnimate : MonoBehaviour { public Animator animator; void Update() { if (Input.GetKeyDown(KeyCode.I)) { animator.SetTrigger("Idle"); } if (Input.GetKeyDown(KeyCode.K)) { animator.SetTrigger("Kick"); } if (Input.GetKeyDown(KeyCode.W)) { animator.SetTrigger("Walk"); } } } Let’s see what's there in the scripts. Name Type Description Animator animator; variable To store the reference of the Animator Controller of the object Update() Unity Callback To write conditions according which the animation is To be triggered Go to Unity now and play the scene you will see the idle animation playing default. Now press the keys I, K and W respectively and check. Did you see your character..? Yeyy ! your character got life. Your character is breathing, kicking and walking. I'm sure you are on the right track. Now, let’s move to another method. By Scripting First set up the scene like the given image. Don't forget to add sprites folder that will be use for the the different animation to your scene, if you don't have the Sprites you can download it from here. Create a 2D sprite object and assign the first sprite of the idle Animation Create the Script named as AnimationWithScripting and attach it to hero Object and write the following code in it AnimationWithScripting.cs using UnityEngine; using System.Collections; public class AnimationWithScripting : MonoBehaviour { public SpriteRenderer spriteRenderer; public Sprite[] walk; public Sprite[] idle; public Sprite[] kick; void Start() { StartCoroutine(Idle()); } void Update() { if (Input.GetKeyDown(KeyCode.I)) { StopAllCoroutines(); StartCoroutine(Idle()); } if (Input.GetKeyDown(KeyCode.K)) { StopAllCoroutines(); StartCoroutine(Kick()); } if (Input.GetKeyDown(KeyCode.W)) { StopAllCoroutines(); StartCoroutine(Walk()); } } IEnumerator Idle() { int i; i = 0; while (i < idle.Length) { spriteRenderer.sprite = idle[i]; i++; yield return new WaitForSeconds(0.07f); yield return 0; } StartCoroutine(Idle()); } IEnumerator Walk() { int i; i = 0; while (i < walk.Length) { spriteRenderer.sprite = walk[i]; i++; yield return new WaitForSeconds(0.07f); yield return 0; } StartCoroutine(Walk()); } IEnumerator Kick() { int i; i = 0; while (i < kick.Length) { spriteRenderer.sprite = kick[i]; i++; yield return new WaitForSeconds(0.07f); yield return 0; } StartCoroutine(Kick()); } } Now go to Unity and add the sprites of walking, kicking and idle state in their following lists in the inspector as per the image. Let’s see what's there in the script. But wait... In this script, the coroutine is used for Sprite Sheet animation. If you don’t know how to use coroutine. Don't worry our coroutine unity blog post will help you. Trust me you will be master in 10mins. Name Type Description Start() Unity Callback To start the idle coroutine. SpriteRenderer spriteRenderer; variable To store the reference of the spriterenderer of the object. Sprite[] walk; list To Store walking Sprites Sprite[] idle; list To store idle Sprites Sprite[] kick; variable To store Kicking Sprites Update() Unity Callback To write conditions according which the animation is played IEnumerator Idle() coroutine To Run the Idle Animation IEnumerator Kick() coroutine To Run the Kicking Animation IEnumerator Walk() coroutine To Run the Walking Animation Now, go to Unity and play the scene you will see the Idle animation playing default. Now press the keys I,K and W respectively and check. Yeahhhhh ! Again you see character, its breathing kicking and walking. But wait which one is more optimised? Yes, maybe you would be having the same question. Both the methods run the same way when checked in the profiler. So, it's up to you whichever you feel easy and quick and in accordance to the requirement of your game. Feel free to contact us if you really liked this blog. And don’t forget to share your comments below!
  16. Hi! How is XP calculated? For example, to reach level 4, the player should reach 200 XP and to reach level 5 player requires 450 XP. Is there a formula? Is there a tutorial available online? Any source where I can learn how XP is calculated? Can you give me a simple example from any existing game where the XP increases whether the player wins or loses? Thanks!
  17. Objective The main objective of this blog post is to give you an idea about Camera Shake in Unity3D. Are You looking for giving some real feel to your game ? Do you want to add some screen shaking effect to your game ? Then you are at the right place ! A great way to add some real feel to your game is camera shaking. It’s great for signifying the action and making your camera feel more real and part of game. So, if you want to add camera shake in your game then you are at the right place. In this blog, I will show you how to create your own camera shake effect in 3 ways. Let’s try it with scripting first. 1. By scripting First setup a scene like this in Unity. Create an empty game object named Explodestar and a particle system in child to get more effective look. Create a script named Explodestar attached it to ExplodeStar gameobject to play particle system on playing game. Create another script named CameraShake and attach it to camera you want to give the shaking effect. The code in the scripts is shown as below. CameraShake.cs using UnityEngine; using System.Collections; public class CameraShake : MonoBehaviour { public IEnumerator Shake(float duration, float magnitude) { Vector3 orignalPosition = transform.position; float elapsed = 0f; while (elapsed < duration) { float x = Random.Range(-1f, 1f) * magnitude; float y = Random.Range(-1f, 1f) * magnitude; transform.position = new Vector3(x, y, -10f); elapsed += Time.deltaTime; yield return 0; } transform.position = orignalPosition; } } In this script, I have used the coroutine concept for shaking the camera. If you don’t know how to use coroutine in Unity you can check this blog. Trust me you will be master in 10 Minutes. Name Method/variable/coroutine Description Shake() coroutine Coroutine used for shaking camera Vector3 orignalPosition variable To store the original position of camera float elapsed variable To Store Elapsed time float x variable To store random x value float y variable To store random y value ExplodeStar.cs using UnityEngine; using System.Collections; public class ExplodeStar : MonoBehaviour { public ParticleSystem explodePartical; public CameraShake cameraShake; void Update() { if (Input.GetKeyDown(KeyCode.E)) { explodePartical.Play(); StartCoroutine(cameraShake.Shake(0.15f, 0.4f)); } } } Name Method/variable/coroutine Description Update() Unity Callback To check whether User Presses Key E ParticleSystem explodePartical; variable To store reference of particle System CameraShake cameraShake; variable To store reference of Camera explodePartical.Play(); method To Play the particle system StartCoroutine(cameraShake.Shake(0.15f, 0.4f)); method To start coroutine for Camera Shaking Now go back to Unity and hit play button and press key (E). Woooohooooo! You can see the screen shaking . This was simple and quick way to shake the camera. But wait, It has some limitation. It doesn’t rotate the camera in any way and there is no way to control the roughness. It just moves the camera every frame and using coroutine is bit clunky sometimes. So, if you want smoother camera shake this is not the way to go. Let’s try it with another way using the animation and check if it fulfills our demands. 2. By Using Animation First setup a scene like this in Unity. Add animator to main camera and create 2 animations idle and shake in that animator. In ideal animation start recording and set the camera to its original position. And in shake animation move position of camera on every two frame as you want to shake it. Now go to animator and create a trigger shake. Make transition from idle to shake and uncheck the ‘has exit time’ checkbox and set transition time to 1. Now make transition from shake to idle and set transition time to 1 but don’t uncheck has exit time. Now make empty object named ShakeWithAnimation and add ShakeWithAnimation Script to it and has a particle system in child to see it more effective. ShakeWithAnimation.cs using UnityEngine; using System.Collections; public class ShakeWithAnim : MonoBehaviour { public Animator camAnim; public ParticleSystem explodeStar; void Update() { if (Input.GetKeyDown(KeyCode.A)) { camAnim.SetTrigger("Shake"); explodeStar.Play(); } } } Name Method/variable/coroutine Description Update() Unity Callback Used for checking whether User Presses Key A ParticleSystem explodeStar; variable To store reference of particle System Animator camAnim; variable To store reference of Camera Animator explodePartical.Play(); method To Play the particle system camAnim.SetTrigger("Shake"); method To set Trigger for Camera Animation for Shaking. Go to the Unity and play the scene and press A. Oh Yeah! The screen shook again so you learned one more way to shake the camera. But wait, all condition are fulfilled but, what about roughness? Was there any way to control it using animation? Nahhhh! Then how can we do that? Yes, I know the same question is there in your mind. Let’s try the last way and check it out. 3. By using plugin First make new scene in Unity. Now go to asset store and download the plugin EZ Camera Shake (this is recommended by me as I use this and is very good but you can use any other plug in of your choice). After finishing downloading EZ CAMERA SHAKE, import it to your scene. The folder EZCameraShake will be added in your scene. Add script CameraShaker of EZCameraShake to main camera and set the variables as you want. Now create empty object and name it ExplodeHeart. Then give particle system in child for more effective look. Now create and add ExplodeHeart script to it. Add EZCameraShake namespace to your script. ExplodeHeart.cs using UnityEngine; using System.Collections; using EZCameraShake; public class ExplodeHeart : MonoBehaviour { public ParticleSystem explodePartical; void Update() { if (Input.GetKeyDown(KeyCode.H)) { explodePartical.Play(); CameraShaker.Instance.ShakeOnce(4f, 4f, 0.15f, 1f); } } } Name Method/variable/coroutine Description Update() Unity Callback Used for checking whether User Presses Key H ParticleSystem explodePartical; variable To store reference of particle System explodePartical.Play(); method To Play the particle system CameraShaker.Instance.ShakeOnce(4f, 4f, 0.15f, 1f); method To call ShakeOnce Method of CameShaker Script Of EZCAmeShake passing magnitude, roughness, fadInTIme and fadeOutTime. Now go to Unity and play the scene and press H. Yeah! The screen shaking was so smoother than the both the other way, wasn’t it? By this way you created your camera shake with the plugin. But wait, does this mean that the shaking camera with the script and animation was bad idea. Nope, instead the last way would give more load on your memory while running so if you don’t need this smoother shaking and roughness controlled camera shake the scripting one is really quick and easy. So you have to be wise while choosing any one of the methods of camera shaking in your game according to your requirement.
  18. Poigahn

    3D 3D Modeling

    I am in the process of learning 3D Modeling of Vehicles. I have already done simple, non-complex items such as Boxes, Billboards and other objects like Barrels. Now I am working on intermediate Items like small Aircraft and Autos that I am comprising of several components. For example : Wings , fuselage, engine(s) and Tires/Wheels. My question is this, Should I Texture/Skin each Item Separately or Join all Items together to form the Final Model, then UV Unwrap The complete model and Create the Texture / Skin. Any and all advice would be appreciated. Any other words of wisdom would also be appreciated. I would be willing to accept any private tutoring and share any of my models with those that help.
  19. Hi, I recently decided to try and develop a mobile app for iOS and I was wondering if there are any great resources for a beginner like me. I don't have any experience with coding or game developing and I would appreciate some sort of outline that could guide me through the process. Thanks!
  20. Hi everyone. I guess this would be another one of 'those' questions. I'm a .NET programmer and I've been developing games in Unity for 3 years now, and recently finished my 5th game. But in some sense, I feel like I've reached a barrier. I don't want to disregard Unity in any way, neither UE4 (that I used for a month or so), but in the last days, I'm feeling some urge to have more freedom in the development of my projects. That's when the idea of rolling my game from the ground up came back to mind. Besides wanting to have more control over some low-level details of the game, I want a more close control over the scene system especially to use my own map editor. And obviously, I'm exciting by the learning perspectives. If I use an engine again, I would go with Godot. And although I know I could expand Godot to my needs, that's unlikely to happen because I'll get easily overwhelmed by the engine and the lack of a good C++ API specific documentation (the engine one is good though). So I'm here to ask for your personal opinion. I know C/C++ good enough to start, and I've already toyed around with OpenGL. I also love this topic and data-oriented approaches. Should I use SDL, Allegro? Irrlicht, Urho, Ogre? Maybe build upon Cube or Torque? I'd like to learn while doing it, but how much work would be to write a simple render in pure SDL? And adding shadows or shaders? Should I follow HandmadeHero maybe? - I'm planning on Windows support, but with porting in mind. Starting with 2D and hoping on diving in 3D soon. - I'm not building an engine, but a game. Thank you all!
  21. Lucas Carvalho

    MMOFPSRPG

    I'm brazilian, and my english is very bad because i've never had a class, so please disconsider all of my spelling errors and mismatch. I have always dreamed of a MMOFPSRPG game, like a MMO Far Cry with quests and bosses, or like a Gun Gale Online (without the nerve gear :v ), but i have no idea of how to programming a game, i really want to learn it someday but for now i have no time, so i think how would be a MMOFPSRPG game in the same GGO vibe, like obtaining good guns and armors in bosses or crafting, with PVE and PVP areas, with quests and events, and maybe it could be made in UE4, or a Arma III mod, or something. It is a good idea?
  22. As mentioned in my earlier blog I have chosen to implement an attribute system in my game Cycling the board game. The goal in this game is to cross the finish line first. This is determined (basically) by rolling a dice (d6) each turn and moving the amount of squares. Each player has a slightly different dice, based on the player’s skill, where players with a higher skill have better dice (e.g. better odds to throw a high number). When the dice is rolled, bonuses to the dice roll are applied based on the player’s attributes and the game world. For example, if the player is on a mountain square and has a high value for attribute Climbing, he could get some bonus points this turn to add to his dice and move further. This is the first time I have implemented such a system and I am happy to hear any feedback from you how this could be done better. To implement this system, I took the following steps: Add a new enum AttributeTypes with a list of all (12) attributes Create a new Class “Attribute”. This Class consists of an AttributeType (one of the twelve) and an int to store the value (1-20) for this attribute. Add a new Class “AttributeManager” and added an instance of this class to each player. This Class consists of a list of all Attributes for the player and contains functionality to check for bonuses based on the attributes and the game world. The system works pretty well, but somehow doesn’t feel right, maybe because it is too complex, maybe because it is just the first time I am doing this. I also wonder how this would be done in a more complex game like Football Manager for example. Thank You for reading and please let me know your thoughts on the subject in the comments! PS. I have not implemented the actual functionality to use the attributes to add bonus points to the dice, that will be the subject of my next blog probably.
  23. I have reached a point in the game I am making where everything is just starting to fall into place. So now that everything is aligning I can't help but notice that my AI is the weakest part of the game. The game is a 2D Sci Fi space combat game. The game leans much more towards arcade games. At the moment my AI uses a rule based system, something like this: public Class AIRules { //Rule1 void ShootEnemyInRange(){ //Code for firing etc. } //Rule2 void LookForTarget(){ //Code for looking for a target } } Rule 1 has priority over Rule 2 etc. So as can be seen I am no expert at making AI. I would like to improve my AI but I don't have months to spend learning something new. I was hoping that someone could point me to something simple that I could learn to improve my AI, that will only take about a week to learn. It could be any small practical thing. Something that would be useful to a indie developer.
  24. Hello there! I would like to start developing a game in my free time. I'm interested in 3D PC game only. I know it's not the wisest choice for first, but I'm willing to spend years on it. Game development is my childhood dream but I'm stuck in the telecommunications line of IT It's time to finally start gaining experience in what I love to do! But I don't know where to start. Previous experiences: Metin2 (MMORPG) development for 5 years Languages: C++, Java, very little Python I saw many popular and awesome-looking free engines but I don't know which one I should start first. I'm obsessed with graphical things (I loved creating new maps and re-texture stuff when I was still developing Metin2), but I don't know how to create new models. I'm planning to learn it in the future but for now I would need an engine that has some default characters/terrain objects to work with. It would be a very big plus if I could make a multiplayer game, to actually be able to play it with my friends once it's done or even share it with a little group of players, running it from a not-too-expensive VPS. I also need some ideas on what type of game should it be that wouldn't be too hard or expensive for first. I wonder if I make a game for let's say 4v4 rounds for 10 minutes each, where players can play simultaneously (2+ rounds running in the same time with different players), would I have to run them each on different servers? I mean it's not a problem as long as they don't need too high performance. I don't know how much it would cost since MMORPG-s work a bit different I guess. I would appreciate any advices! Thank you
  25. I’m trying to find a global illumination solution for my project, and I need it to be fast. So I tried to get direct illumination into the light map by sampling a shadow map. The light map’s resolution is pretty low, and caused the problems of aliasing ( in my case, it’s 128 * 128 for the ground). Is there any way to improve this? Thank you all for reading.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!