First game. Looking for some info/advice

Started by
5 comments, last by DejaimeNeto 10 years, 2 months ago

Hello everyone. I love video games and decided to take the plunge and try and make my own. I know everyone has the dream of creating a video a game and then many of those dreams are crushed when they realize the effort and time required. I am probably in that category. I have an idea for a video game that i'm sure I will never be finished. But like I told some of my friends who may or may not help me, i'm doing this entirely for experience and improved knowledge. Whether it gets completed or not, I hope to learn many things from this.

A little about myself: I am a computer science major and have only been going to school for a short while (2 semesters). I am one of those dummies who didn't realize that I should have already begun coding and creating things before college... lol. With those things aside I will say that my school begins with java. So most of my experience is with it although i have written a few c, c++, and VB applications as well. As with most colleges at this point in time, I have no experience with actual graphics, just the basics of algorithm speed, searching, and sorting things. I am currently learning about object oriented design and how larger projects are put together.. so hopefully that will help me out a lot.

Now a little about the project: Aside from my love of video games, I love board games, role playing games, and tabletop miniature wargames. It is the latter of these I'm trying to create as a video game. As blizzard did with trading card games and hearthstone, I want to do the same with miniature table top wargames like Warhammer and WarMachine. I know I will never be able to get the same polish and epic awesomeness that blizzard has in hearthstone. But I want a fantasy turn based strategy game where players control a fantasy army. Before playing a game, they get to customize an army by choosing and customizing several units and heroes and then marching them onto the battlefield to beat their friend's army.

So now for some questions:

1. Should I start from scratch or use an engine like JmonkeyEngine? Is JmonkeyEngine a good choice? or is there a better one? Again I am only going off this because my experience is with java.

2. I have never really messed with networking but I would really like to be able to play this game online with friends. I know Jmonkey has some networking methods and classes already in it. I do have an old PC I could set up as a test server for just 2 people to play while we work on the game. Is that a good idea or is it dangerous to have a very limited security server in your home connected to the world wide web? Is there a cheap web hosting service you could recommend instead of a home server? Any good links to server/client tutorials?

3. I have already written up the basic rules of the game and how it should work. Many of my hit detection formulas require random numbers to represent "rolling". What is a good method to handle the random rolling in the game?

4. Where is a good place to start ? Silly question here but in school it seems every project is really small (atleast so far) Something the size of a video game is very intimidating. I have already created the rules and how things should work. I have created many of the classes for the game like for units. However, getting it all to work together in a game.. that is another story.

5. Any other constructive advice? Links to good websites that may help me? I'm still learning about jmonkey... I have been going through their tutorials. I will be using blender for the 3d models... which will just be banners for units ... for now LOL.

Note: I will be using this thread for any new updates on my project and for any new questions I may have concerning it. Thank you all for your patience. I know noobs like me get annoying.

Advertisement

1. Should I start from scratch or use an engine like JmonkeyEngine? Is JmonkeyEngine a good choice? or is there a better one? Again I am only going off this because my experience is with java.

If you're kind of a bigger, you should not start from scratch. Creating an engine is a lot of work, and you probably don't have the experience yet to make a good one... It doesn't really matter which game engine / framework / library you take. As long as it does what it should and you are productive with it, it will be fine. ;)

2. I have never really messed with networking but I would really like to be able to play this game online with friends. I know Jmonkey has some networking methods and classes already in it. I do have an old PC I could set up as a test server for just 2 people to play while we work on the game. Is that a good idea or is it dangerous to have a very limited security server in your home connected to the world wide web? Is there a cheap web hosting service you could recommend instead of a home server? Any good links to server/client tutorials?

Using an old PC shouldn't be bad if you only host a game with it, but you probably want to only open the game port you are using and maybe even install Linux for its speed and security... There are many VPS hosting services out there if you don't want to host the game yourself. You would probably want to learn about basic sockets, protocols and such. After that you will need to do some reading on game networking. This site may be useful to you for that. But I want to warn you that networking is usually a pretty hard part of the game. It makes debugging harder and give you a lot of extra work. Depending on your experience, you may want to start without networking and see how that goes. ;)

3. I have already written up the basic rules of the game and how it should work. Many of my hit detection formulas require random numbers to represent "rolling". What is a good method to handle the random rolling in the game?

I assume you mean random numbers? Practically every language features libraries for random number generation so you probably want to start there.

4. Where is a good place to start ? Silly question here but in school it seems every project is really small (atleast so far) Something the size of a video game is very intimidating. I have already created the rules and how things should work. I have created many of the classes for the game like for units. However, getting it all to work together in a game.. that is another story.

It may seem stupid, but this may be the part where your idea falls apart. You probably want to get more experience on game development, for example by creating smaller things first, reading books and reading tutorials. It's just something you have to learn by experience, I'm not a very good Java game developer so I can't point you in a very specific direction... Maybe someone else can?

5. Any other constructive advice? Links to good websites that may help me? I'm still learning about jmonkey... I have been going through their tutorials. I will be using blender for the 3d models... which will just be banners for units ... for now LOL.

Every time you have a question ask it to someone who can help you. Learning how to use the documentation of libraries like jmonkey will also be very useful. But I really want to advice you to start with something simpler and keep your GDD of this game around so you can create it some time later. Maybe this will help you, but ignore their tone...

Thank you for the reply! My heard headed self actually listened and you guys are absolutely right. Games are hard. Well Saturday I got actually got a game of pong working lol, though my AI is retarded or too good. But it took a lot more time and effort than I realized.

However, now I have some more questions. Me and one of my friends are both learning game programming/development. We are both used to java and use the eclipse IDE. I'm curious if there is an easy way to share code or projects from long distance? He is in navy. Right now we just share a Dropbox but I was curious if there was like a way to share and instantly update files on both sides?

Another question I have is about taking a single player game and turning it into a multiplayer game later. Like a 2d top down action rpg (Diablo ish). Is it easier to make a single player game and add multiplayer later or is it better to know ahead of time you want multiplayer and code it to handle it from the start?

Sorry I'm still a noob lol. But I appreciate you guys and any time you take to assist me! (And for bad grammar .. Typed on a phone)

Hi, congrats on pong. That's a great place to start. It seems helpful to work your way up through history. Maybe try missile command next.

If you want to improve the AI, do some research on Fuzzy logic and use some random numbers to offset the AI's success.

If you want to work as a team on files, you could set up a github account. I personally just set up an FTP server and place all my files inside of a shared folder. I use FileZilla and FileZilla server for that.

Finally, I've never worked on a multiplayer game so someone might give better advice, but generally, if your code is modular enough, you don't have to change a ton.

You're at a good starting point and the fact that you have someone to work with and talk to is fantastic.

For sharing files I would recommend Subversion with google code - it will keep track of you commits and changes and such for you

As you say you want something to update immediately, and don't find Dropbox a good option, there are not much alternatives. Dropbox is as instant as it gets, besides from some alternatives. Usually Git (best VCS ever...) or SVN is used to host code. There are a lot free hosts for private and public repositories out there. But if you may want something more instant and you're only with two people, this link may help. It describes how to install a real-time collaboration plug-in for Eclipse. I don't have any experience with it but it may work depending on your needs. Good luck!

Right now we just share a Dropbox but I was curious if there was like a way to share and instantly update files on both sides?

I mostly use tools that specialize on code sharing, those that can show a history and the differences between every update. But for a more general file sharing and small projects I like to use rsync instead of dropbox. It allows me to sync locally between my two computers (really fast) as well as online sharing. I personally use the command line for it, but there are some GUI clients for rsync as well.

I don't use dropbox for developing since I like to decide my own directory configuration. I use it only for non-development related and personal stuff.

PS: I also host my own private GIT, since I didn't like any paid nor free private hosting I tested, probably because it is easy to keep a git in my own machine, the advantages didn't justify the costs.

This topic is closed to new replies.

Advertisement