Jump to content

  • Log In with Google      Sign In   
  • Create Account

menyo

Member Since 09 May 2010
Offline Last Active Jul 04 2016 04:32 AM

#5298980 How do I finish my first game with few hours to code but a lot of free time?

Posted by menyo on 04 July 2016 - 02:58 AM

I would rather try to find a solution to get more hours behind a PC. If your parents do not allow it then explain what you are doing instead of playing games and involve them in your project. This can give good motivation and feedback for you as well. But I don't know the exact reason why you can only spent a view hours each day. If you don't own your own PC then build one yourself, if you are lucky you can get a pretty good one for just $25. Plenty of people that can help you with it on hardware forums.

 

Making notes and looking up sources is a good idea for your spare time but you cannot try it out and for a lot of things you need to go back and forth between documentation and coding.

 

Anyway, 3 hours multiplied by 30 days is still 90 hours. Creating a full (yet simple) game in 90 hours is totally doable if you have some experience. So finishing up half a game should be possible, depending on the game of course. For a competition this long most people can only commit about 3 h/day = 21 h/week since they probably have a full time job.




#5289619 Implamenting a code

Posted by menyo on 01 May 2016 - 02:41 PM

Learn to code first then worry about design patterns...

 

Thats why I put Java 101 prior to design patterns. Programming any game requires you to at least recognize design patterns since LibGDX and other frameworks will use them. Yes you could tell a man to just .addlistener(new Listener() { ... }) but I rather tell a man how to fish instead of catching one for them.




#5289528 Implamenting a code

Posted by menyo on 01 May 2016 - 01:26 AM

I would like to suggest the LibGDX framework. It is a well documented game framework for Java and something like pong can be easily written with it in a view pages of code. Just download the LibGDX setup tool and Android Studio. Create a project with the setup tool and import it into Android Studio and start coding your game.

 

However, guessing from your posts I don't think you really know how to program in Java, otherwise you would probably not ask this question. Yes you might know some syntax but that is really not enough to start out. Try to learn the basics of java first, there are plenty of online sources, I am self-thought myself.

 

  1. Basics of java, knowing how to iterate a loop does not make you a coder.
  2. Know when and how to apply proven design patterns for your games.

There are plenty of tutorials for LibGDX where you will be creating a complete game but not really needed if you know how to read documentation. Pong is really simple and it is a great pick to start out. Pong, at it's core, requires only 3 classes.

 

  1. A Paddle class, here you put the input controls and perhaps a image to represent the paddle.
  2. A ball class, the ball needs to know about it's environment so store references for the obstacles (paddles) and the level area here. Whenever the ball makes contact with these you invert either X or Y.
  3. A screen class where you can show scores/lives and initialize objects from the previous 2 classes.

Good luck, whenever you are stuck with your code just post it here on the forums and I am sure you can find some help.




#5289525 Just need some start advice...

Posted by menyo on 01 May 2016 - 12:59 AM

Simply put, if you want a artist to work for you, you have to pay him 99.9% of the time. It's very rare that a artists accepts a deal like sharing profits. You have to keep in mind that it is your project and they are probably not as interested as you in it. Obviously they have to put in a lot of time and work for you and unfortunately most "beginner" projects don't even finish. And since there time is money too it's pretty normal they ask money and that you should simply pay for what you are asking for.

 

Amazing artists ask for a lot of money and my guess is that you don't want to spent a lot of money. There are a couple of options for you.

 

  1. Use free or cheap art. There is a lot of cheap art out there online but keep in mind it can be bought and reused by anyone. Also keep your eye out for bundles, I managed to buy a ton of 2D/3D/Sound in the last couple of years for not even $100. You can at least use them as placeholders.
     
  2. Finish your game with placeholders. If the game sucks then good art won't make it better. If it's a great game already then invest a good amount of money into a artist and setup a good looking crowdfunding campaign where you can try to fund the art you need.
     
  3. Learn to draw yourself. Yes this will take you another year or perhaps just 6 months: http://imgur.com/gallery/Ij65E/new



#5288787 My understanding for developing a video game, can I get some insight?

Posted by menyo on 26 April 2016 - 12:18 PM

 

There are different parts in a game, and these parts occur in many games, but not in all. A sixteen puzzle game has no physics or logic. A text adventure has no graphics.

Programming languages are mostly general purpose, and you use 1 language for the entire game.

 

There are not many games that use one language nowadays. Most games use a scripting language for various aspects like dialogues or loading/saving and storing other data like a AndroidManifest.xml.

 

1. But don't let that scare you. If you know how to write in Java you know how to write in C# and from there it's a small step to a lower level language like C++ or higher up like Python. If you just want to create games you pickup a framework or engine where things like GPU communications are already done for you. You can start coding your game right away and these frameworks offer a arsenal of handy snippets for you to make your life easier. Just pick a language like Java or C#, learn the basics and get comfortable with the language, then pick a fitting framework for the language you chosen.

 

2. A map or level is created often by hand but can also be generated automaticaly. The tree's of Oblivion where planted by a alghorithm and then cleaned up a bit. Games like diablo generate there dungeons while the game is running. And others handcraft there maps. For 2D maps you can use a application like tiled where you can paint your tiles on a canvas and render that in your game. For 3D a engine is used, some companies roll there own but there are plenty of existing engines where you can start placing objects and "painting" your world.

 

3. Slow down and take it step by step. There are plenty of physics libraries that can do a better job then the car physics of GTA V but that requires advanced knowledge of physics and cars from the developer. Anyway, figure out what you want to do, if you really want to code then pick a language and start learning the basics. Once you feel comfortable with it you should know about some libraries or frameworks that will help you create a game or perhaps you want to give Unity or UE4 a go. Every major engine offers physics for you to use however you want. Likewise most frameworks like SFML and LibgDX come with a physics engine as well, otherwise you can pick one that is compatible with the language your working with and import it. But like I said, slow down! I bet you won't completely finish a game in the following 2 years, not even a simple game like break out. Let alone something that vaguely resembles GTA.




#5288779 Libgdx animation stutter

Posted by menyo on 26 April 2016 - 11:44 AM

hey vendetta, glad you sorted your issue out!

 

just wondered if you could give your opinion on libGDX, im currently learning java atm and are planning on using libGDX latter on...

 

just wondered how you were finding it? some people say you need to be experienced in java to use it... also im going to be doing games with lots of animation, in your opinion how is java handling animations so far for you? 

 

thx in advance

 

Rick

 

LibGDX is awesome for 2D and simple 3D games, I find the common engines better suited for 3D since you just need a scene builder for it. You code everything in Java so you do need to be comfortable with the language and OOP but if you have coding experience you can code a basic 2D game like pong or Arkanoid in a couple of hours with it. Unless you are trying to match the next Halo game I would not bother with performance. Java and C# are slower then C++ because it manages your resources for you, but using a popular engine generates a ton of overheat as well. One thing is for sure, learning LibGDX or any other framework, API or engine does not hurt you.




#5285752 Should getters and setters be avoided?

Posted by menyo on 08 April 2016 - 03:14 AM

I have read this article and watched the webinar of Yegor and various other sources that imply that getters and setters can and should be completely avoided. While I do agree on a lot of things what Yegor says, I am still struggling to understand it completely. I do agree on having methods that do the thinking for the object itself instead of a plain setter. For example if we have a bank account we should not have setBalance(double balance) but instead withdraw(double amount) and deposit(double amount) this would clearly benefit the safety and readability of the exposed functionality for this object. So I agree that setters are in some way evil, we should always ask the object to do something and let it be handled by it's own behavior instead of pulling some data out and work with it somewhere else only to put it back in again. I also agree with him that this leads to better designed classes and easier abstraction when you want to split it up.

 

However, I am not sure how I would be able to get rid of getters, and I might not want to, but I am intrigued by this idea of Yegor. If we take this balance object, it seems to me it is important we can see it's properties, in this case the balance and perhaps the transactions that have been done on it. How would I do this without some sort of getter? I mean showBalance() would still function exactly like a getter. Even if I would add some sort of GUI to the balance object to display it's contents I still need to be able to "get" that GUI element. In the real world I am able to see some of the properties from objects and for some I might have to ask the objects. For example I can see the color of a box so I should be able to "get" it's color directly. I should not be able to get the combined weight directly from the box, I ask the box to calculate the weight of it's contents and itself and return this, I guess the latter does not fall under the term "getter" for Yegor.

 

One of the reasons Yegor mentions is the dependency of clients connected to the object. Say, we suddenly want to know who withdrawn something from the object? I am not understanding why his "idea" would help us in any way. We still have to change the withdraw method and all clients using this withdraw method need to be changed. I guess I still have no clue what he is talking about.

 

He also implies in his webinar that all objects should be immutable. This idea sounds crazy to me, he is actually proposing to pass a new object every time we want to mutate it.

public Balance withdraw(double amount)
{
  return new Balance(balance - amount);
}

I am aware that most people think this is nonsense but I would like to hear why. Or better, how this would help us in any way. I can only think of this as much slower and more typing:  myBalance = myBalance.withdaw(...). What is the use of a object when it is not allowed to change at all, and when it wants to change it clones itself. This eventually results in long constructors since all the final properties that are allowed to mutate (yes it sounds crazy) need to be set in the constructor.

 

I'd like to here your thoughts about the ideas from Yegor in the article. What are your thoughts and why do you think it's good or bad?




#5284482 Too good to be true?

Posted by menyo on 31 March 2016 - 07:06 AM

6: this does not require a great story, game, programming skills, or any of that kind. It requires marketing skills and a good bit of luck for getting picked up. I created a pretty decent Brick Breaker that stood out from 99% of the brick breakers. It was not as great as the absolute best but it worked, had cool effects, some new gameplay elements, etc. I figured I would get at least a couple thousand download in a view months for a free game. However, it has been over half a year since release and I have yet to hit the 200 install mark. I have added it on all free PR and press release sites, twittered the first months a lot about it, still mention it now and then when appropriate and held about 20 game give aways to promote it.

 

Making a good game is hard enough since you need all those different skills for it. Making money on a game requires a whole new skill set on it's own like monetization and marketing. If you want to make games to fill your pockets then attach yourself to a anvil and get down on earth. You should make games because you love doing so, and if you succeed in making a genuine good game you might get lucky and earn a bit more then just beer money. I think it's more likely you hit the 7 figure jackpot in Vegas then a RPG maker game to go viral.




#5284462 Should I give up?

Posted by menyo on 31 March 2016 - 05:32 AM


Although, if that's the problem, quitting might still not be the choice he should make, yet.

He might want to tackle game making software first.

 

If you want to make anything slightly interesting you need to code. yes perhaps he can try UE4 and fiddle around with the blueprint system, but in essence this is still coding. I have no experience with RPG maker but these games all look alike. And Game maker requires at the very least GM scripting afaik to make something interesting.




#5284460 How much Maths/Physics do I have to know?

Posted by menyo on 31 March 2016 - 05:28 AM

For basic games really not that much since existing frameworks and engines help you with that. I move everything in my games with the use of Vectors and these really only require adding, subtracting and multiplication skills. They are easy to understand and you don't need to use any trigonometry for positioning. Every now and then you will run into something that requires some math but there are plenty of resources online that can help you solve it. I think my knowledge of math is pretty limited and I was never really stuck on something requiring math. Math does help you with solving problems though, like in programming you have to dissect your problems in small readable peaces and combine these to solve the problem you have.




#5284212 Should I give up?

Posted by menyo on 30 March 2016 - 04:51 AM


And remember, it's your heart, so you should heed its words. In the real world you only get one life to do that, and you can't save your progress or start over and try different endings.

 

I love life since I love playing Ironman mode :D




#5284211 Should I give up?

Posted by menyo on 30 March 2016 - 04:50 AM

What discouragements are we talking about?

 

  •  People saying you suck
    These people suck them selfs, you should find a different audience. If you are putting a lot of effort into something you like then this deserves an applause even if it does not turn out as expected. I would not want any person in my environment that would discourage me about programming.
  • Problems during coding
    If you are discouraged by code and do not like to solve these problems then you should quit now. This will be all you are doing and is the essence of coding. Personally I love to sit all day and tinker on how I can make something faster or more readable.
     

Of course, if you just graduate and want to program you need a income to pay for your stuff. You are grown up now and need to find a job to support yourself. In your spare time you can code, if you are really dedicated like me you would code whenever possible. You also need to get another memo, when your game is finished you there is a minimum chance you get anything more out of it then beer money. If you know all the ins and outs of programming, audio, graphics and finally have a good finished game it's time to learn about marketing (actually at least some months prior to release). And even with a great team that are specialized in these things there is no certainty in getting anything out of it.

 

Let's say 4 people work very hard on a game and finish it in one year. The game is well received and after 3 months it finally gets greenlit by the steam community. You and your team need to work another couple of months to get ready for steam release. Eventually you price it $10 and it gets sold 5000 times in the first year which is reasonable for a average game of $10. Steam takes a $15K share and you are left with 35K (before the tax cut) so after 2,5 years since the development started you have to share about $28.000 between 4 people. This is the reality for most developers. Of course, it could go viral but on the other hand you could end up selling just a couple of hundred copies.

 

If that final part discourages you then you also need to stop right now and never return to coding. Code because you like to code, like to solve problems, like to create games, etc. If you write proper code you will get a job into the industry sooner or later and perhaps even make a living from your own development endeavors.




#5284180 Multiple objects/player objects for my game?

Posted by menyo on 30 March 2016 - 12:03 AM

You are not quite there yet with your fundamental knowledge so my advice is to continue learning more basics. About your specific question, you should use a datastructure to hold multiple objects of the same kind. There are many data structures that all act differently. If you have done serious work in the months you learned Java then you should have read about arrays. Arrays are data structures but offer the least of functionality and can only be of a fixed size. Lists are probably the next you will get to know. They have variable size and offer a lot more functionality. You also have Sets and Maps, sets don't allow equal objects in it and maps map objects together like a dictionary. These are the most important but you need to know them all in order to pick the right one for the right job.

 

Now more specific to your question, since you have a player with a position my guess is you have a draw and logic loop somewhere where you would calculate and draw your stuff. Here you can iterate these data structures and perform actions on each of it's contents.

public class Player {
	private int x, y, width, height, health;
	private Color color;

	public Player(int x, int y, int width, int height, int health, Color color) {
		this.x = x;
		this.y = y;
		this.width = width;
		this.height = height;
		this.health = health;
		this.color = color;
	}

	public int getX() {
		return x;
	}

	public int getY() {
		return y;
	}

	public int getHealth() {
		return health;
	}

	public void draw()
	{
		//However you draw this player.
	}
}

Now you can specify a datastructure to hold <Type Player>, a ArrayList is most probably your best option here. You can add players as you like and do all kind of queries on the list.

                List<Player> myPlayerList = new ArrayList<Player>();

		myPlayerList.add(new Player(0, 0, 10, 10, 100, Color.GREEN));
		myPlayerList.add(new Player(20, 20, 10, 10, 150, Color.RED));

		//Call the draw method on all players in the list
		for (Player player : myPlayerList)
		{
			player.draw();
		}

		//Find a player with certain properties
		Player pickedPlayer = null;
		for (int i = 0; i < myPlayerList.size(); i++)
		{
			//Check conditions
			if (myPlayerList.get(i).getX() == 0 && myPlayerList.get(i).getY() == 0)
			{
				//Set picked player to the current iteration
				pickedPlayer = myPlayerList.get(i);
				//break out of loop
				break;
			}
		}

		//You can remove objects from a ArrayList by index or if you know the object
		myPlayerList.remove(pickedPlayer);

		//If you want to change the list while iterating you need to use a iterator.
		for (Iterator<Player> iterator = myPlayerList.iterator(); iterator.hasNext();)
		{
			Player currentPlayer = iterator.next();

			if (currentPlayer.getHealth() <= 0) iterator.remove();
		}

Try to find a good use for each type of data structure and understand how each one works.




#5281532 Getting dimensions/model from a picture?

Posted by menyo on 16 March 2016 - 01:37 PM

Thanks for the links, any chance in existing libraries for the purpose of this?




#5279340 Using NC assets in screenshot before release?

Posted by menyo on 03 March 2016 - 03:33 PM

Well, I guess that was a stupid question now I think about it. For what it's worth, I am not posting anything into the world but I guess that does not matter since it's still a commercial project and some of the artwork is licensed NC.

 

The thing is, I want get the look and feel of the game right by picking whatever I can find before I'm going to make any artwork myself because that is taking ages for me. I'll guess I have to replace it with what I have and can find that can be used for commercial projects.






PARTNERS