Behold, the quintessential noob

Started by
4 comments, last by zerobounds 12 years, 9 months ago
Yup, another one is here.

a little background... when I was like 16 i started modeling in 3dsmax and got into some inde groups as a hobby mostly using the torque engine long ago, did some character modeling freelance stuff on turbosquid and sold some soundtracks to a few companies. Been working with 3dsmax and FL studio for almost 10 years now on a hobby level. Currently I'm in the oil field doing 3d modeling and animation. Had a huge passion for games when i was younger and still get all giggly when i play some good rpg's.

So now I'm older now and i decided i need to start programming because i don't have enough anxiety and frustration in my life and this would surely be the best solution to remedy that void. I used to play mmo's with my brothers & some friends and i beta'd at least 15 games through to release and it was some amazing fun we had.

I started learning C++ with learcpp.com and it's not proving to be too difficult so I've started looking for an engine and there are way more choices than i anticipated...

What i want is a 2d or 3d MMO space game, i want it as simple as i can get - you get a spaceship and fly around the universe blowing up mobs for xp and can also atack enemy players real time, not turn based. This boils down to databases and networking serverside i guess (havent got into the requirements yet) and a simple game foundation i can work with. I'm totally willing tto buy an engine but i'd prefer something open source. 2d is fine if its an isometric engine but the flat top-down anime mmo's dont appeal to me. So that gives me a little bit of everything, networking, mmo growth, server side content control and plenty of programming challenges to make my brain meltdown for years to come.

If its really too complex for a noob then I can shoot for an RTS engine with multiplayer support and then i can just do a space rts without all the complex level-up mmo stuff.

I really just don't have a clue where to start, i'm learning some C++ but i dont know what engine will work best for my needs.

Thanks
Advertisement
So after I clicked post I saw the link to the noob FAQ. Of course.

I started looking at Unity 3.3.0 with ExitGames Photon Server with the free license. Gonna download and check it out tonight when i get home.

Any suggestions for this combo? helpful content links?
Hey, working with Unity and Photon is HARD. But I'd be interested to see exactly what your ideas are about a game.
[size="5"]http://innercirclegames.freeforums.org
Email me at: innercirclegames@hotmail.com
bummer.. there were 3 options and i chose Photon after noticing the 50 free ccu version since its definately all i'll need to play with implementation right now... Why is it hard? It's recommended on the Unity website.

For now the game i have in mind is pretty simple, start with a space station, a location in the universe and a ship. For now I just want to create something functional where I can fly my spaceship around and blow up other brainless spaceships with a simple AI that attacks you if you're in range (or whomever is doing the most damage and in range). The enemies give XP, drop loot/salvage and you use that buy junk for your ship, ie new weapons and shields from your space station.

Eventually I want a view where you can enter the station in an RTS setting and build or upgrade buildings and purchase buff items but thats on the backburner since i want a working foundation first of course.

I want it to be a locked 3d isometric view with a radar minimap locating enemies, allies and other space stations as simple ping dots from your current position. In the future I'd like to get creative with level up perks, different commanders for your spaceship, guild/team/alliance setups for players and all that jazz but.... my main target is getting the ship gameplay working and connecting players and giving them relogging abilities with retained data on the server.

in a nutshell
(1) 3D isometric view
(2) Super simplistic AI script for npc's
(3) Minimap / Radar
(4) Interchangeable item system that affect your damage, health, and other defined attributes unique to each player
(5) Small galaxy area to begin blasting away, all space views, starry background.

I'm not too concerned with proportions and stuff, for instance when you fly up to a planet its really only 4x the size of your graphical ship... i'm going for ideas and principles right now.

Any help is really just super appreciated, I'm running through the Unity tutorials right now and it seems perfect if i can make it do what i want. I know what my scripting and programming feats are but im not sure how to approach and tackle them yet and that is whats consuming most of my time at this point.

bummer.. there were 3 options and i chose Photon after noticing the 50 free ccu version since its definately all i'll need to play with implementation right now... Why is it hard? It's recommended on the Unity website.

For now the game i have in mind is pretty simple, start with a space station, a location in the universe and a ship. For now I just want to create something functional where I can fly my spaceship around and blow up other brainless spaceships with a simple AI that attacks you if you're in range (or whomever is doing the most damage and in range). The enemies give XP, drop loot/salvage and you use that buy junk for your ship, ie new weapons and shields from your space station.

Eventually I want a view where you can enter the station in an RTS setting and build or upgrade buildings and purchase buff items but thats on the backburner since i want a working foundation first of course.

I want it to be a locked 3d isometric view with a radar minimap locating enemies, allies and other space stations as simple ping dots from your current position. In the future I'd like to get creative with level up perks, different commanders for your spaceship, guild/team/alliance setups for players and all that jazz but.... my main target is getting the ship gameplay working and connecting players and giving them relogging abilities with retained data on the server.

in a nutshell
(1) 3D isometric view
(2) Super simplistic AI script for npc's
(3) Minimap / Radar
(4) Interchangeable item system that affect your damage, health, and other defined attributes unique to each player
(5) Small galaxy area to begin blasting away, all space views, starry background.

I'm not too concerned with proportions and stuff, for instance when you fly up to a planet its really only 4x the size of your graphical ship... i'm going for ideas and principles right now.

Any help is really just super appreciated, I'm running through the Unity tutorials right now and it seems perfect if i can make it do what i want. I know what my scripting and programming feats are but im not sure how to approach and tackle them yet and that is whats consuming most of my time at this point.


Ok, well, you are starting with unity right. Let's say for now that you view the spaceship from behind, outside. Here is a list that you should try to tackle in-order:

1) Build a spaceship/placeholder
2) Create a script that moves the spaceship with the mouse/keyboard
3) Create a script that lets the camera follow the spaceship.
4) Create a projectile, like a missile
5) Create a script that fires the projectile from the ship in the direction the ship is facing
6) Create a target, for example space debris, make sure it has a collision component around it
7) Make sure your projectile has a collision component
8) Add a script to the missile that it detects collision with the object, just detection at this point
9) Adjust this script so that the missile blows up.
10) Write a script that add properties to the space debris, so the space debris needs to get a variable for life, a method to reduce this life when it is hit, and a method to die when life is 0 or less.
11) Adjust the projectile script that it detects what it is hitting, and triggers the Hit() function on the space debris when it is hitting the space debris. Various ways to do this, one easy way is to call the component script on the space debris Hittable. Then check from the projectile script if the Debris has a hittable component, if it does, you can get that component and call the Hit method on it.

Ok, so at this point you should have a spaceship that you can move around, you can shoot and blow up space debris. As for the loot. I usually write a lootable component, the enemy has some basic properties like enemy type and level that function as a lookup in a loot table. I can explain it in more detail when you get to this point. The same idea for XP. When an enemy dies, look up the XP in a XP table for the XP/Enemy type and add it to a character class. It is really easy to code.

When you can drop some loot it is time to write a basic inventory system to store loot, this is really just a matter of managing and viewing some lists of data. Don't do anything fancy at this point, just have some item icons, reserve the fancy stuff for later.

So at this point, you just have a space debris, you can shoot it, destroy it, add loot and xp, and you have a basic inventory. Then after that is done, then I would start worrying about the enemy AI. I have pushed this to the back, because it ican be the toughest part to program depending on your needs. You will need to find a way for the AI to navigate the world first, so maybe they fly between waypoints or something first. Then they need to be able engage you without bumping into everything. Last they need to fire at you and prioritize between their weaponry, fleeing, etc. This could be one of the reasons to start out in a 2D space, instead of 3D space, it makes the spaceship navigation much easier, although a lot less cool.
AI is basically divided in a couple of parts.

You need sensors, for example checking if something is in a spherical range
you need actuators (as in, the ai can move the ship),
You need AI memory, so some place to store what the current state is of the AI(idle, attacking, etc), what the current AI goal is, etc.
You need a brain that looks at the sensors, ai memory, and the actuators, and determines the best course of action.

You can read up on the subject on AIGameDev.

As for the MMO part, that is something you would start adding at this point. Don't wait any longer than this, or it might become too hard to do a good integration. I can't help you with this part because I have never coded anything bigger than a simple multiplayer game. Basically you will want your object states and actions to be efficiently serializable and then find a way to transfer these serialized object and action between clients and server. It gets more complex when you need to cull and optimize this data, but the possibilities depend on your middleware.

As for minimaps. There are probably some tutorials. But it is quite easy if you have some central list with enemies, objects, and friendlies in a sector. You just pick positions from these lists and draw the location in a reserved part of your screen, or you could create some fancy 3D minimap, but personally I hate those.

So yeah, that is how I would do it. But I really advice you to find a coder on the unity forums to help you out along the way. Mabye someone who is available a couple of hours a week for questions, help with some basic code, etc.
Wow - that's very helpful and informative, thanks for taking the time to post it.

Currently I'm working out a concepts document so i can get a handle on what i need. I'll probably be in the mIRC channel pretty often looking for help with stuff, i think there's a lot of generic stuff i can collect from older posts and tutorials though.

This topic is closed to new replies.

Advertisement