Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 04 Aug 2012
Offline Last Active Today, 01:07 PM

#5167214 defining good and suitable procedure

Posted by 3Ddreamer on 16 July 2014 - 02:19 PM


In both iteration and waterfall, you need to build on a software architecture, designed and finalized by the development head.


how can i make a good software architecture for may game?



Since it is going to be a very simple and humble beginning, look at making charts for the game coding modules.  Sometimes people start with a so called "spider chart" or "wheel chart" which has a hub in the middle and legs or spokes in all directions.  


Wheel or Spider Chart

A game dev with fairly simple beginning like you have here should put the main menu and background interfaces connected to it which only the game dev team will be using and seeing in the middle of the chart.  At first this can be done with a pen or pencil and a sheet of paper.  Put the Main Menu in a box in the middle of the chart.  Next place interfaces which only the team will use (invisible or non-existent in the end-user game) around the main menu:   Import/Export (mainly art assets), configuration, compiler/decompiler, debugger, and so forth.   On the outside perimeter of the chart, put the basic game coding structure:   dlls (or jar files in the case of Java), each class file (for example, good guys, bad guys, AI, vehicles, map / level, objects, powers, weapons, etc.), main menu [coding] module, physics, executable file, etc. Just put a label in each box with no description in this chart. This chart will be revised several times as you learn more!


Flow Charts


Module                                     Module 

Class Files                               DLLs or Jar Files  


      Flowchart                 Flowchart


                     Main Menu                       ....(Hub or Body of the Wheel or Spider Chart)


      Flowchart                 Flowchart


Module                                     Module

Executable File                        Configuration File



The flowcharts are made next to list the coding libraries and the coding issues involved in each particular FLOW of functions.  You can see from the end-user perspective that the flow is from center main menu to the coding modules and returns with each response.  Also there will be flowcharts made to connect the modules in the third stage of software architectural planning.  Forth stage is the actual design (in detail) of the specific tools used, coding libraries, and issues anticipated.


A) Software Architecture Stage  


1)  Spider or Wheel Chart

2)  Flowcharts (Legs) from hub to modules (Feet) 

3)  Flowcharts between modules


B) Design Stage


1)  Select IDEs, SDKs, and game engine to be used

2)  Choose coding libraries to be used ( "template" coding libraries like compilers, deguggers, graphic user interfaces, plug-ins, importers, physics library, and editors, etc. )


3)  Decide on art assets to be used

4)  Make a flowchart which lists all of these in concise labels

5)  Draw art which shows visually each area of the game, such as characters, vehicles, level (map), Main Menu, Splash Screen, Score Board, etc.  You may also make scene by scene design art for stages of gameplay. This may be as simple or professional as you feel is necessary.  This is a good place to assess the art skill of your teammates and their enthusiasm for the project.


C)  Development Stage


1)  Chose roles and tasks of the team

2)  Start with creating largest art asset or most important one in the game, often the "map" or "level" and the most important coding library for beginning, often the game engine setup. Early art assets can be all placeholders as your team learns to use the development system that you have assembled while at the same time working on the real art assets.

3) Team learns how to use the IDEs, SDKs, and/or game engine by the following sequence:


a) Import the level or map and the main user operated asset (could be the main character, vehicle, weapon, etc.)

b) Make the end-user operated entity moveable, create the input method to manipulate it, and make the Main Menu buttons to start, play, and end this simple game stage.

c) Add more art assets and functions by class files in the coding modules, vetting the game play and background functionality with flowcharts

d) Test each iteration with as many players as needed.   Several people should test each iteration because often differences in people will discover any bugs or improvement to be made.  Be thorough in testing and have fun with it!  smile.png


Obviously, there will be times when steps will be skipped or swapped in order, but this will give you a basic outline. 


Be sure to keep copies of all your charts in case you need to revisit an issue and also to promote the reality that your team is organized for investors, publishers, and future reference for new teammates.

#5167061 defining good and suitable procedure

Posted by 3Ddreamer on 15 July 2014 - 06:15 PM

What you do is build a very basic broad base in each area of game struct and support coding.  With each iteration, you are supposed to extend the coding. Early iterations may use place holder art in some situations. In my opinion "waterfall" is a recipe for chaos and confusion in a team. In both iteration and waterfall, you need to build on a software architecture, designed and finalized by the development head. No plan is also a recipe for chaos and confusion, increasing probability of coding that is not reusable in the future as teammates are lost and added.


There is not enough information in O.P. to make recommendations on game coding structure and software to aid you in designing a plan.


Git and Perforce are long term recommendations and the sooner your team starts using one or both of them than the sooner you will reach project completion with a reasonable level of quality for newbies.


Often "waterfall" results in whirlpool!  Keep the early design and team structure simple, but it must have a spine or you will be slithering around the coding like an ameba.  By the way, Wikipedia has good articles and links for issues in the game development and software development topics and subtopics, which helps noobers a lot.

#5156922 Blender for making Games?

Posted by 3Ddreamer on 30 May 2014 - 03:21 AM

Blender is perfectly fine for any hobbyist who wants to use the game engine of Blender. A few Indy pros have published games made from Blender.


The tools of Blender for creating art assets of your game (based on another game engine, SDK, or IDE), are good.


The GUI still needs work in having better descriptive labels and it has some features which are too challenging to locate..



#5156663 how to find specefic platforms sdk like p34 and xone?

Posted by 3Ddreamer on 29 May 2014 - 03:25 AM

If you're an indie (with not much money), but they really like your game, they might be nice enough to give you free dev-kits and to waive the submission fees.



Contest winners get privy, but they are slowly adding the stipulations such as proof of concept, registered development company, and the contracts are getting more binding on future completed projects.   "Free" stuff comes with added out of pocket costs and relinguishing true Indy status, it would seem to me, but what do I know. unsure.png

#5156656 Language Choice

Posted by 3Ddreamer on 29 May 2014 - 02:48 AM

The object can be the bet, so you can make an algorithm which the class uses regardless of which gambler is making the bet. This can potentially save many coding lines and spare you the work in each class, even avoiding the task of having to code each gambler to place a bet.  It is possible to make the class inherit the object, in this case PlaceBet(). For C++ that's a function that you prefer, but in C# that might be best as an inheritance. http://www.dotnetperls.com/inheritance


This is a good example of how a beginner using a C++ function will slip right into spaghetti coding, whereas using the C# inheritance of the object would allow modularization and also serve to clarify the relationships. The benefit is also fewer lines of coding.

#5156653 Staying motivated while learning? [Advice needed]

Posted by 3Ddreamer on 29 May 2014 - 02:29 AM



As a result this is making me feel bad, because when I see others out there who seem to have grasped the knowledge, it makes me feel like I'm stupid, and if I'm not grasping the logic now, how am I supposed to grasp it in the future?  There are very successful game development or software development industry leaders today who struggled in early stages, some worse than you are. Coding is generally a major challenge for anybody to make progress. You are far from alone!

I've jumped from language to language. That is at least half of the cause of your frustrations right there.  You need to stay with one language until you reach at least intermediate level before adding another one.  From C# to Java, and although I'm beginning to feel more comfortable with Java, there is still elements that trigger me to procrastinate, and I just can't seem to understand some things. You need a step by step and stage by stage study course in Java.  Since you like Java, then stay with it until you reach intermediate level in months, a year, or more.  While learning programming as a beginner, (I only know HTML & CSS) did anyone else experience a hard time while learning? Everybody has had a hard time learning at this. Coding is not natural to humans.  We are doing things which we as a species have only begun in recent generations.  Is this actually a bad thing, or is it good to have a hard experience while learning? Climbing that mountain one step at a time results in it being a good thing once you reach the peak (complete projects). Any advice would be much appreciated. Set hourly and daily goals that are reasonable. Reward yourself for reaching daily goals by thinking about the wonderful things that you have accomplished and will achieve soon. 


You need focus, hard work, completing goals, and welcome the challenges as the cost of making progress.



#5156414 Making a Game: Which Card to Use?

Posted by 3Ddreamer on 27 May 2014 - 09:52 PM



If you are a beginner or intermediate game developer, then I feel that the least expensive one would be very adequate.  In my opinion, game development doesn't start demanding highest performance until the developer reaches higher skill and development needs. I personally have two lower performing PCs which combined are still cheaper than 1 top performing one.  While one PC is crunching a task, I work with the other one. If you can save enough money with the lower priced one, you might want to consider taking the savings toward getting a cheap laptop PC for doing coding while your high performance one is crunching numbers.

#5156401 Language Choice

Posted by 3Ddreamer on 27 May 2014 - 09:07 PM

Hi, Trevor



Some examples of coding languages which are fairly beginner friendly are C#, Python, Ruby, Lua, Java, and high level languages native to game engines (created for a specific game engine). You want to grab a language that is commonly used as a high level language and preferably an auto garbage collection one (meaning automatic memory management).


Since you are a raw beginner, stay the [ #*>@%# !!!] away from C++ until you gain at least intermediate level in your first language.  The C++ allows some very bad coding habits from beginners which likely would cause a lot of confusion and frustration later. The C++ is generally tolerant of inferior and inefficient coding.  In the hands of a knowledgeable coder, C++ is very powerful and adaptable. In a beginner's hands it would be like throwing a flight student into a jet fighter on his or her first flights. Do not let anybody convince you otherwise.


Choose a game engine which suits your genre of game that you want to make long term. I recommend one with a large online forum community and satellite websites with add-ons and art assets affiliated with it, like Torque3D for instance.  Next, pick either the native language of that game engine or one that is well supported for it (Not C++ !!), such as C# for Unity or Python for Blender Game Engine or Java for jMonkey, etc., as examples.  You should code for about 1-2 years before dipping into low level programming in my humble opinion. 


Next use that language that you chose for the game engine that you want and make some non-game applications like "Hello, World!", letter display application, simple indexer, simple sorter, etc., while studying an organized book course or online tutorial for that language. After a couple months, then begin making console application games such as Tic-Tac-Toe, Crossword Puzzle, Word Search, and so forth. Once you have about 8-12 of these applications done, then you are ready for a game engine.


With a game engine, the beginner should make 2-3 single person 2D games like a Maze, Space Invaders, Defender, Asteroids, Pac Man, etc.  Next make 2-3 multiplayer 2D games such as Pong, Tank, Orb Eater (for two players), and so forth.  After several of these single person and multiplayer 2D games developed by you in your game engine, then you are ready for single person 3D game development and lastly multiplayer 3D games.


Now, if you follow this plan that I outline here, it should take you about 1-3 years, depending on how much time you have available. The benefits are that you will develop good coding habits which will save you thousands of hours of coding compared to the amount of actual project done in coming years. Bad coding habits are the opposite, making you fritter the years with little gain.  Within 1 year you should be programming fundamental class files, jar or dlls, coding interfaces, GUIs, configuration files (.ini or xml or other) and be able to swap executable files with each new iteration of your games. That is about the time that you should have basic version control system which you start to use to manage and document versions of your games. Coding in these modular methods will save you thousands of hours in debugging and allowing you to reuse some coding for future projects or versions of a particular game.


So, for now choose a game engine and select a high level language for it, learning in preparation for making games:


List of Game Engines



Set reasonable goals and work almost everyday at this.  Above all, make sure to reward yourself with visible progress as you enjoy this.  It is hard work but you can stay motivated by rewarding yourself in reaching nice milestones.


Work hard and have fun! biggrin.png

#5155971 Good game design software?

Posted by 3Ddreamer on 25 May 2014 - 11:32 PM



"Design" is design!  Development is development!  The two really should not mean the same thing.


The way it typically goes is:

1) Concept Stage

2) Design Stage

3) Development Stage

4) Testing and Deployment Stages:  Alpha and then Beta

5) Publication / Distribution


In the Design Stage, often game developers start with rough pen or pencil sketches of the gameplay and label the game functionality if needed.  Another design technique is the use of flowcharts for game functionality and game coding structure.


The design art can be used later for advertising the game once it is done, if the design art is suitable. Design art can sometimes be illustrated scene by scene to represent the gameplay. Once a game development company gains success, the need for game design art for conveying the game concept to investors, game development leadership, and eventual marketing campaigns ( such as by a publisher like Ubisoft ) will become obvious.


You need to grasp the industry standard jargon and realize that genre of video games and even individual company culture shapes the needs of design.


There are many software for design and which ones to use depend on your skillset, the needs of the game development, and your personal  preference.  All of this will take time and effort for you to realize for yourself.


I use paper and pencil or pen, GIMP, Inkscape, and LibreOffice for my game designing at the present time. Hopefully things are clearer for you now. smile.png

#5155967 Newbie Here

Posted by 3Ddreamer on 25 May 2014 - 11:13 PM




In your case, choose a game engine and select a language for it that you will be using.  Next, take several months to learn the coding language in a course or online tutorial, make several non-game applications, build 3-5  of the 2D console application type games such as Tic-Tac-Toe, Crossword Puzzle, Word Search, Pong, Defender, Asteroids, Pac Man, or any of the many legacy 2D single player games and progress to multiplayer in the last couple.


Next you would make 2D game in the game engine of choice. Eventually in about 1-2 years you could be ready for 3D game development. 


If you skip steps and stages, then bad coding habits will be common and you will miss many important things that you need to learn.


List of Game Engines



That is a partial list of the many game engines out there.


Return here to gamedev for help as you progress. Read my below signature. Research should be a permanent part of your work.

#5155645 Should I make a simple game in Unity before moving on to big stuff?

Posted by 3Ddreamer on 24 May 2014 - 07:28 AM

Unity IS big stuff!   LOL


Use Unity 2D first.  Make a few single player 2D games. Next make a couple multiplayer games. Learn how to deploy this on different hardware. The 3D stages would be after you have made 3-5 of the 2D games.


Make sure to create several non-game applications before you start to develop games.  I recommend completing some kind of book or online course, too.

#5154589 need artistic view on lightening and texture

Posted by 3Ddreamer on 19 May 2014 - 02:54 AM

for example for a long time lightmaps are being used in video games but still there are a lot of problems in them and how you should deal with them or in udk for sunlight we use one dominant light but it never gives you a good refelction and efect in for example windows and objects or in the place that there is no light source how to set lights that it be good looking but still it be natural that there is no light and a lot of these kinf o question that i dont remember now. i think there are some techniques that it doesnt depend on proggram or engine we work. i read an article from mark iwanaki graphic proggramer of naughty dog on the last of us that had explained those techniques in that game very well but i dont think it was the all thing. can anyone introduce me some good book or article resorces or that is just something can be achieved with exprience? thank you for helping


Once you get that detailed then the exact implementation techniques become particular to your own workflow pipeline. For example, there are a variety of lighting implementation techniques and combinations of them across game engines. 


That said, look for "local lighting" or similar terms for the software in your pipeline.  Lighting can be control directly in the game engine software, by 3D modeling programs, or the most common way by both of these. For example, in 3ds Max a light can be custom created for a game if the game engine being targeted will import such lighting models.  Blender can do this, too.


Once you get highly detailed with these pipeline issues, then you need to do more research by asking questions from the online forum communities which use the software, tools, and techniques that you are. Of course you can find some of that here and hopefully a UDK user will read this and help.

#5153674 What comes first, artwork or code?

Posted by 3Ddreamer on 14 May 2014 - 05:44 PM

In the development of many AAA popular game titles, the artists went to work first in creating concept art, sometimes in illustrated scene by scene fashion.  If it is done very well, then some of those artworks can be used for attracting more investors and for advertising the game once it is done. The more experienced the game development organization, then generally the more feasible it becomes to have a choice in whether to commit to some art assets first or to begin coding.  Both could begin literally on the same day, as well. A highly skilled single person Indy developer could likely start with a 3D model or start with assembling some game source code libraries with a bit of coding.


If the first 3D model is exported from the 3D software in one of the standard model file formats according what the game engine will use, then this likely is no problem. One could begin to create a game that is very art asset driven from the start. To get a "map" or "level"  rendered by the game engine would be an early priority so all art and coding can build in relation to it. 


However, if already existing code libraries are to be used, then it could be preferable to tie these libraries together as a game framework upon which art assets would later be imported. Next, further coding would be needed to make game functionality and gameplay features. It is not unusual for placeholder art to be used until all fundamental game source code is ready.


Some game development companies have been blasted by gamers for using almost the same game engine, game functionality, and similar game concept in consecutive releases from the company. Here is a case where a company feels desperate for improved development cost to sales ratio.  In this case perhaps all the basic coding is done and used as placeholder while the company puts new art assets in to the framework and will later add coding as needed.


In my opinion, most beginners to game development should start with coding first and add art assets later.  An exception might be the highly skilled 3D artists who needs to build on a level that he or she has made.


My conclusion is that what is made first (art or coding) depends on factors such as personal preference, skill set, available existing framework, and business pressures.

#5153480 Suggestions to a wannabe!

Posted by 3Ddreamer on 13 May 2014 - 11:50 PM



You need to choose a language, maybe a game engine later down the road, and make 3-5 simple single player console application type games (Not to be confused with console video games, a console application only uses the basic drivers and graphics API of your computer - the bare minimum - to display the game on the screen.  Examples are Tic-Tac-Toe, Crossword Puzzle, Pong, and so forth.


After you make and finish 3-5 nicely done games, then return here for more help in going to the next level.    

#5153269 need artistic view on lightening and texture

Posted by 3Ddreamer on 13 May 2014 - 04:00 AM



The norm is that 2D and 3D art assets are created in a comprehensive software with settings for lighting which are standard in the industry or at least standard to the target game engine.  As an artist, if the game engine allows, then I may control the parameters of lighting for each model or even for each individual surface polygon of each model in extreme customization if I desire and the performance of the game and game engine will allow it.


Examples are that I can make a surface translucent or transparent as I manipulate it in the 3D software (such as Blender or Maya, for example). I could also select all surfaces of the model to apply a light feature.  In this case, a common one is to control the color and/or amount of diffuse lighting of an object. This setting is the total basic lighting that is reflected or emitted from an object, but not the shine or transparency which are two other settings. The settings are applied to the model and saved in little files, usually within the model folder itself but sometimes external if the game engine calls for that. The model folder is typically dropped into a class folder to be read as a class. The game engine will read all contents of the model folder and rasterize to screen. Animations, collision, and damage model can potentially be included in the model folder, as well.  Other characteristics of the model can be contained in the model folder, too, such as textures, bump mappings, and custom vehicle or character physics.  These can be internal or external to the model in theoretically any combination that the game engine allows.  Generally if a feature is not used by the game engine then it simply ignores the folder and files since it does not recognize them.  Your game source code is what ties everything together in actual game functionality that the end-user and operating system needs for a game to be compiled, executed at runtime, and manipulated by the end-user gamer.


If the workflow pipeline is assembled correctly, then the game engine will accept the art assets well.  The game developer then writes coding in the game source code which tells the game engine what to do. In some game engines, it is also possible to write game source coding automatically in WYSIWYG fashion, such as with the Blender game engine that uses nodes to show the developer what is going to happen in the game functionality and writes coding according to it. On the other extreme, some people write all low level and high level coding, but why try to reinvent the wheel?