Jump to content
  • Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

165 Neutral

About GamerX1221

  • Rank


  • Twitter
  • Steam
  1. 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!!
  2. 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.
  3. 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!!
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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!
  9. GamerX1221

    Ken Perlin to Keynote Develop:Brighton 2017

    That is awesome.  I hope he has a great time.
  10. 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.  
  11. 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.
  12. GamerX1221

    Xbox Project Scorpio Specs Revealed

    That is amazing, with tough design decisions!!  Amazing amounts of features for developers and programmers.
  13. 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.
  14. aEUR'Becoming an expert in any field is tough work. It's more difficult in computer fields due to the all the changes that constantly occur in computing technology and the amount of freeaEUR' resources available that allows for so many different types of individuals to participate in the development process. One can easily get sidetracked, daunted, overwhelmed, and disparaged over all the advances that constantly occur, and the amount of successes of others that might attempt to overshadow our own personal and professional victories. Here are some important things to keep in mind and to do: There are many roads to the same path aEUR'aEUR'Some are quick Some are scenic Some are expensive aEUR'Some are complex Some are simple You have to choose the right path for yourself, after you assess your own skills and performance level. This is different than whatever team you might happen to be on, whether it is your circle of friends online, in life, or at work. Your individual expertise or inadequacies are important for yourself to understand the tools you might have available to you to keep progressing forward, and still overcoming tough challenges. For example. I am excellent at ideas and understanding consumer market situations, because I've worked hard to be well rounded. Five years ago I had the idea for a great game, movies, etc... though I was a novice in computer graphics, and somewhat adept at programming, and fantastic with engineering ideologies. My choices were use an existing game engine or educate myself in an computer graphics curriculum. Luckily for me, I had been doing research in educational software, educational technology, and education, and I knew the benefit of education. I also knew the benefit of a game engine, which I could happily and easily use, and start making some money or receiving comments from the online world, etc... I chose education and here's why. Because I'm very well rounded, I have more than one great idea, and constantly know how to mathematically, pragmatically, and systematically transform my ideas into realizable concepts that can be used in a game or movie setting. I knew very little about computer graphics or computer graphics programming, although I am an excellent coder and programmer. By educating myself, I realized had the potential to one day make great video games or movies like the top studios, though it would take a lot of work. So here is the decision tree and the tradeoff. years of extremely hard work ( in most of our cases, more hard work than we have done before) with a huge payoff a few years of moderately hard work with a game or movie in the end, and some notoriety or experience. A huge point I want to make about this blog is, is the payoff is, yes, the potential for lots of money and fame, but for someone like me who has been on the internet since he was 15, '95, the really big payoff was a mastery of computer graphics technologies. I use the term mastery, because I learned it in a way that connected with my already existing skills. Like I was saying there are different paths for different people, and we all know how to build off our existing achievements, abilities, and experiences gained. Mastery can mean different things for different people. I am by no means the leading expert in the subject matter. It's important to be honest with yourself and asses where you are and where you would like to be, and then set the respective goals for yourself. You might not achieve all of them depending on personal circumstances, but in those cases, you can save them for a day when you achieve the goals you can, and who knows, the things you learned by achieving those goals, might help you achieve the goals you couldn't before. I believe in honesty and truth because if I had lied to myself 5 years ago and said, "Oh I'll just go use a game engine and make a game, and it will be a great game" I know I wouldn't be doing that game idea justice. This of course, is a matter of perspective and opinion, but it is mine. I was able to get all the learning, tools, and SDK's I needed online and mostly for free. I am going to be blogging about costs and decision making, being a developer in upcoming blogs too, so I hope you enjoy them. I will also blog more about the topics posted in this blog in future. Here are my resume experience information: Name: Nav December 21, 1980, Male Bachelor of Software Engineering, Bs.C Master of Engineering and Master of Computer Science I started out doing java programming and enterprise development programming, then became specialized in interactive multimedia and computer graphics programming. During the last 4 years I focused specifically on learning c, c++. While I'm primarily focused on Windows and DirectX, I am learning OpenGL and Khronos based technologies as well. I am training to become a professor in a multitude of topics and I am currently starting my own Educational and Entertainment Software Company, called Sub-Quantum Businesses. I am currently enrolled in Microsoft's BizSpark entrepreneurial program.
  • Advertisement

Important Information

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

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!