Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

165 Neutral

About GamerX1221

  • Rank


  • Twitter
  • Steam

Recent Profile Visitors

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

  1. Here is a short blog about cross platform development and general advice: For intermediate programmers If you are working together in a team and just want to make a game together, use a game making tool like unity. This can be also true if you don't have much time during the day. If you are more math oriented than programmer Learn object oriented programming and class or object reuse Start learning the differences between code libraries on linux, windows, and mac computers use c,c++ programming language or java is also acceptable for beginners definitely learn opengl for cross platform development lookout for differences in multithreading and concurrency API calls and libraries between platforms start learning software engineering and get a good handle of modularity start practicing UML diagrams, these will help you identify places in the game engine where differences between operating systems might happen, and how to neatly create different code set variations when needed look out for audio libraries, licensing, and codec information on different platforms; windows provides many codecs for free as a cost for purchasing windows, but maybe different on other platforms ALSA on linux xaudio2 on windows Happy Coding!!
  2. I think you can just use texture coordinates and multiple quads or quad instancing, and pass per instance data per quad or something along those lines. try scissoring 1st as it might be a better choice for the mobile GPU.
  3. Cool idea.   Combos are tough.  There are different ways to accomplish the task. Luckily, we software engineers are great at it.  This is called a design decision.  First you have to determine a start point and end point. For example?  In a battle, when someone wins, what do they get?  Additional attributes, statistical information, like a win/loss? Another important thing to remember is any kind of battle system helps the player achieve larger goals in the game, whether it may be gaining experience or preparing for tougher levels, and/or combination, or obtaining money for better equipment,etc... The end point determines what the gamer's get out of the battle, so you should design it to do multiple things that improve the situation of the player.  The duration of the battle is also important.   Also, if you want battles one after another, that is called an "arena" game or mode, side quest or side mode module for an rpg or free explore game.  To make an effective "system", like I think you are trying to do, you would design the user interface with that in mind, so players will enjoy it more. As far as how you implement the system, what moves you create, is determined by characters, game play style, theme, etc... There are multiple keywords there for you to research and explore.  Hope that helps!!
  4. Everyone has different capabilities and skills. Some are analytical and some are practical. Like computer science or engineering, business is complex, diverse, and pretty powerful. Before the computer industry, and even after, business is where a lot of analysis and complexity handling occurs. The mechanisms are similar and some are the same, though they could be perceived to be in a scenario of written in a different language with similar syntactical structure. Object oriented code and software engineering practices allow for programs to be well structures, re-used, and shared by multiple members of a team, and allow team members of different skill levels and experience to interact within a process of design, development, and deployment. This is not an automatic process, and takes a great amount of effort from the leadership team to make a project is produced as per spec. Many programmers and software people know this, and if you didn't, now you do. In business, there are similar concepts that make a business viable, and produce long term growth for a company. While they care somewhat, depending on the business person, an average business person doesn't care what programming language you used, the amount of hours you and your friends spent debugging, unless of course that won some kind of award or you broke a record, or things of that nature. They do care, however, that the game does what you say it does, and that it will run on modern systems, cost a specific amount of money, and you were able to save money producing it using techniques you have learned. This can actually will work in your favor in some cases, because if you find a business person who used to be a programmer, they could be biased on what programming and technology to use, though hopefully this is never the case. Why?? In software engineering, once you go work for a company, teammates do have to work together, objects do have to be reused, and the pace increases because usually a software firm will be handling multiple projects at one time. In business, business people often have multiple clients, that come and go, and sometimes hundreds of clients in their portfolio, so they are taught not to get too personal or learn too much about a business, unless of course, its worth their while. So they only concentrate on specific parts of the technology. If you believe you have enough experience, you should invest your time in creating a platform, for yourself, or try to join or create a team that creates a platform for creating a specific type of game. This is tough work, and when doing so, it will force you to program more professionally. That is when you can create a business around a game or your company. This is called an investment. It's just like educating yourself on the latest technology, and requires goal setting and time allocation. If you are like me, 6 years ago and you know you don't have enough experience or skills, and be honest with yourself, to create a game professionally, but know that you should or really, really would like to, because you have the passion for it, go and earn the experience. This requires lots of patience, especially if you are used to being the smartest guy in the room. If you think you and your friends don't have certain skills, try to work in a team. People that study other subjects also have great ideas and can be useful as part of a team. If you aren't honest with yourself, and I found out through research, that this is why businesses fail. I used to see it all the time growing up, on the news, in papers, etc... some company was great, and then it went under, so I investigated. To be successful long term requires lots of planning, hard work, great decision making, and due diligence. It also requires admitting when you can use some help. Sharing is not the same thing, and can only do so much for you, though it is like anything else, and should be used in moderation. Sharing for the sake of sharing, is also a lot like inflation, if you do it too much, and everyone is doing it, the value of it goes down. If your sharing is actually helping someone, then that's pretty good sharing. The important thing I'm attempting to explain in this short blog, is that business is complex, and that there is a big difference between a game studio and making one game, and there are realizations to be made other than technology choices like programming language, database system, and system architecture. Its like building a car is different than a factory that makes cars. Huge difference. How efficient that factory or in our case, game studio is, will be in a different blog.
  5. GamerX1221

    game utilities: introduction

    To make a successful game company or studio, it is important to focus on utilities for yourself, if you are the manager, and your employees. This is important to stay competitive. In software programming, compilers and interpreters are what programmers use to write code in one language and then transform that into machine readable code. In game development or programming, we do the same thing, except at a higher level, and instead of programming language code, we need to create utilities that take inputs or code blocks of another kind and then transform them to some usable object by someone else on the team or another construct or tool. The process is the same, except for game programming, we need to do the following: Decide what game(s) we would like to work on or would do best in; this is being honest with yourself Figure out strengths and weakness of existing tools we are using Requirements gathering of what utilities need to be created Creating Parsers and Interpreters that transform input of one kind into a different format The last point is the most critical part, though all steps are important if the utility is to be effective, or then what is the point in having it. In school, we are taught how to do things very generally, and how to satisfy an enormous amount of requirements or situations. That is because schools have to teach all types of different students which are at different skill levels, and other things as well. You don't have to create a utility that is perfect for diverse amounts of user types, if only people on your team are going to be using it. If they are above a certain level, you can create a tool or utility that is custom designed for an moderately advanced user. I am making this point because generally people see game engines or kits, which are designed for a very diverse audience, and skill levels, and might think they have to implement all the same features that they do. The game kit developers make a product that is designed to entice lots of different kinds of people to try to make a game, but you don't have to do things exactly like that, though they are useful in determining basic functionality and are great to learn from. In order to become great at making utilities, you should practice the following skills until you are an expert, and challenge yourself to increase performance and speed of functions and operations, including implementing multi-threading and parallel functions, and incorporating them into the following types of functions: File I/O XML and Binary File parsing CODECing and Encryption/Decryption Algorithms Database Connectivity and Use User Interface Design and Programming Software Engineering and SDLCs The last one is important for determining what utilities need to be created, and measuring how much of a boost or performance gain is obtained or can be obtained through the creation of a utility. This will also give you experience in the emerging popularity of the discipline of DevOps programming within computer programming. Also, if you are a beginner in programming, feel free to use existing game utilities to see what they are all about and how they are designed. Happy Gaming!!
  6. GamerX1221

    advanced object oriented programming and modern c++

    Well, the point of the blog was just to introduce Object Oriented Programming from my perspective, as I introduce some tutorials or code sets later on, in later blogs.  I am using a teaching blogging, discussion style, where some "students" or "audience members" with lots of experience, such as Finalspace, may already know the material and have experience with it, but even if 1 or 2 readers may not, it can still be useful information to them and it is worth it to present.   How many times have we seen a lecture or conference, where the presenter or teacher is discussing something, and half the audience is saying "I already knew that."  Well, it is definitely still useful for the other half, and even a review or discussion doesn't hurt, and can maybe help you with something or a fact or detail you might have missed :) I absolutely agree, that sometimes object oriented code is unnecessary, and in fact sometimes you can even include repetitive functions slightly modified in different classes, if it's only used once in a while and don't feel like writing a class. Object oriented code patterns are useful for writing utility code that provide features like Reflection in java, where all methods and classes follow the same pattern and thus can easily be searched for providing information to the search utility.  This can help with more advanced features like dynamic code generation or statistical type information about large code sets.  This is more so for project leads and project management, and falls into the category of software engineering.
  7. GamerX1221

    is this a good idea? MMO Racing game

    Yes it is a good idea, though like some of the replies an MMO takes work, and you have to secure rights to use the cars, etc...even if its free.  The only time you don't have to secure rights is if there is a stipulation about educational purposes or you and your friends are only going to be be playing it.  That being said, you could probably work with someone and make some unbranded cars that are modelled after specs of real cars, and that way start with a few instead of 200.  Cheers.
  8. GamerX1221

    Signed distance field conventions

    Valve, just like any other company uses this convention, because it fits well with their overall mathematical strategy.  The point to using any kind of technology isn't political, it's to understand the benefit it gives you.  For example, signed and unsigned notation became significant, because it originally was used to save computational space with lower amounts of bit computing.  If it does something for you, you should use or if you are using because somebody else used it, you should understand why they used it.  That would be a great question to ask them directly.
  9. GamerX1221

    deciding what type of game to make?

    Puzzle games are still a good way to get experience in making a game from start to finish, especially if you are a solo programmer.
  10. GamerX1221

    deciding what type of game to make?

    Whether you use a game engine or make one yourself, there are a variety of games that you can make. There are a variety of decisions that go along with making any kind of game, and also factors in deciding what game to make. Let's review the different types of games: Platformers Simulations: Sports, Racing, Air Combat, traditional simulation Fighting Action Role-Playing Games: turn based and fps Action role-playing games FPS Puzzle For each kind of game, there are different strengths that'll you need to compete or be taken seriously in order to make a game that someone wants to play. Realistic rendering Fast game play Highly precise physics In depth character design Historical knowledge or expertise in a subject Complex or Simple AI design Fast Computations Muli-threaded or complex code constructs Also depending on what role you play in your team you, you'll have to understand software and project management, as well as supplementary roles of your teammates that may not be programmers. Project Management Content or Asset management A highly secure network for your workstations The right kind of equipment that fits your budget Long term planning, which includes growing, educating, and managing your teammates or employees Game design and educating yourself or educating others on your team about making a game playable from start to end, including difficulty awareness I will post more in future blogs about what different kinds of game types require, but in the mean time I wanted to post this, to get any readers interested in the complexity and challenging nature of video games!
  11. GamerX1221

    Ken Perlin to Keynote Develop:Brighton 2017

    That is awesome.  I hope he has a great time.
  12. GamerX1221

    advanced object oriented programming and modern c++

    With the advent of cross platform games becoming popular, I think game programmers should know there is the do it yourself option.  Basically these are things that game engine or render engine programmers do to get highly efficient frameworks or game engines in place.  It's what I study and do, so its what I blog about.  One of the points I brought up,  is that this way of thinking can help a game programmer or developer get better techniques or learn tricks that may be useful in other areas where graphics programming reside, like interactive multimedia and user interface programming, which are graphics intensive.  
  13. Techniques that "professionals" use are just that, techniques. There are a variety of best practices used in the industry that can definitely provide you a programming advantage. These have been determined mostly by, and for good reason, by individuals for together in large teams, or even good size teams. Object oriented programming allows for modularity in code. In c++, you can use and reuse modules depending on how you structure them, to be adaptable for different kinds of code. Before you start writing your code, it is up to you to determine what parts of your game library you want to be reusable or engineered that way. If you are already an excellent programmer and write all your code dynamically and oop fashion, you can should understand the following about game design: Understand what piece of code does in the game Get something working Refine it until it is object oriented You can also start, depending on your expertise, from step 3 -> 1. The best way to do this is to do an overall requirements gathering about your game or game project, and then group together functionality that be derived or have similar "factorizations" or similarities. This is like simplification or factoring in mathematics. Once you can do this precisely, you will be able to engineer great building blocks for your games or projects. This is called software engineering and can be a great help to you if you practice enough. The reason why it is a great help is because: aEUR'Save time using reusable objects You can refine those reusable objects later, and make them more "code" friendly, if you like to share Once you have something, you can figure out how to make it more efficient or come up with great ideas on how to use it for something else. Helps you appreciate shortcomings in your design, and understand why industry "best practices" were created in the first place. Helps you appreciate advantages in making something yourself, once you become an expert, after lots of practice!! In C++, there are even more advantages because of pointers and addressing. this is important for game design, because if you become great, you can figure out how to create huge performance speedups at little or no space or computation time cost. I mean "huge". personally I have only seen these so far in rendering, game loops, and interactive programs, but I know they also can work for database programming, network programming, input and file i/o, etc... This way of thinking, can definitely also help you creating speed up for mobile programs or web applications, either client or server side, where resources are important to be used wisely. I'll add some resources and links on these kind of topics in the near future.
  14. GamerX1221

    Xbox Project Scorpio Specs Revealed

    That is amazing, with tough design decisions!!  Amazing amounts of features for developers and programmers.
  15. GamerX1221

    the mystery of 2D vector graphics

    2D graphics programming is important for a variety of reasons if you want to be a serious developer. Vector graphics are a math based computer graphics technologies that have become popular with artists, designers, and since the recent development of more advanced video graphics technology, are becoming popular in games. I have been studying them mostly in the context of for use with menu's and overlays for games, and in my case, role playing games, because that's the kind of game company I have. In the graphics programming world, we have: Direct2D OpenVG HTML5 SVG API's Java2D Custom API's and SDK's that extend low level apis Did you know, there are OpenVG implementations available from ImaginationTechnologies for Windows? For linux, there are a few API's available, but if you want full control over your game engine, you would have to implement the library yourself. This is one of the reasons why we don't see lots of linux games, and also another reason why web based games have gained in tremendous amounts of popularity. This is also why Android and iOS became such a popular platform to make games on. It is tough to make a cross platform game engine, though it is possible. Here are some tips if you are thinking about writing your own game engine for a platform, and are serious about competing in the game industry: For Directx programming: You have to use shared surfaces and know how to use them really great, and practice a lot with them. This coupled with multithreaded game loops, allows for writing to the back buffer of your game scene, from both Direct3D and Direct2D contexts. If you want to be able to do this, you should set goals to meet the following requirements. Parsing your system for available graphics cards, and creating interfaces to them dynamically Create Direct2D contexts Create Direct3D contexts Create memory safe multithreaded loops aEUR' aEUR'Once you can confidently do this, then you should look up shared surfaces in directx on msdn. This will allow you to create a great overlay menu for your 3D game. If you have a 2D game, learning some of the techniques will allow you to gain performance speedups in creating your game. If you want to write a unix,linux game engine that is easy to transport games to linux, mac, then you have to implement your own openVG library with the headers from Khronos group. Obviously this is for OpenGL games. OpenVG provides a framework that would allow the development of a game engine or library that is easily usable by anyone using the openvg header, in case you make your project opensource. If you are just using it in house, then you get ideas from it, or partially implement it. In OpenVG, you can write your own rasterizer, or you use OpenGL to render 2D graphics to the screen z-depth plane. There are a variety of techniques for 2D programming speed ups I will talk about in upcoming blogs. I will also update these blogs with pictures, videos, and animations when I get the chance.
  • Advertisement

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!