29 October, 2012

Problem with trying to use Voxels and triangles

So I've encountered a little bit of a problem when it comes to using the voxel mindset with triblocks.  The problem is that I need each and every triblock to have it's own unique ID, yet if  I try to use a single point for each triblock only half of the triblocks would be represented.  Voxel engines are very efficient because each voxel is basically one point which is either filled or not filled (it is possible to attach other information to them, but that isn't the problem as much.)  I suppose that one thing I could do is for any given point there would be the up triblock and the down triblock.  So the final title for the triblock would be something like x200y46z300up.  Ok I'm glad we had this chat as I no longer have a problem.

My First Screenshot

So I realize this has been a long time coming, but I am finally able to post a screen shot showing I am indeed making progress.  I know it may not look like much now, but the foundation for my game is laid out here.  This is a hexagonal room with the triangles on top and bottom and squares on the sides, meaning that it is possible to program.  I still have a long way to go, but it feels good to have something up.  In the program I have a working first person camera with WASD motion going on and the mouse being used to look around.  Thanks to lighthouse3d.com for a good tutorial to get me started.  If anyone wants the executable just let me know.

08 October, 2012

Github

In the vein of being completely and totally open about how I am moving forward with this project I have created a Github account and posted the code I have so far.  I am still trying to get a grasp on OpenGL and GLUT which is why I haven't done a whole lot recently.  Also I am struggling with how to represent the triblocks in a way that is not resource intensive.

Part of my problem is that for each triblock there are 5 neighboring triblock areas.  I need a way for the triblocks to be aware if each of the neighboring areas are either filled or not.  If they are filled then the triblock will not display the neighboring face, and if not then the face will be displayed.  I might have to make a huge set of pointers, which I am not looking forward to as I still haven't quite got the hang of them.

Anyway if you want to stop by and check out my code just look for Brift or Hexwars on github.

06 October, 2012

Single Hexfield battle

Because the game will need to be constructed in phases and the first proof of concept will need to be a full hexfield I have been mulling over how the game might play out if only 1 hexfield were involved.  So the ideas I have are this.

1. The game starts out with a 5/10/15 minute building phase when players can get their base set up.  All teams will start out with the exact same resources available via a console.  It will be up to members of each team to construct their base as they see fit.  Because I one day hope for six factions we'll just start out with 6 separate starting areas, divided up like the picture above.


2. At the end of the build phase the walls come down and the battling can commence.  If players are still setting up their base they are now in danger of being attacked.  If frozen while carrying a base item they will have to drop it once they get teleported, which means that there is an opportunity for enemy players to capture the item and use it for their own base.  This means that there is a good reason to both attack and or defend right from the time those walls come down.

3. The battle will commence until there is only one team standing,  Once a team's teleporter is taken down then they will lose the ability to respawn and will remain frozen in place until they either get a new teleporter down or all of their team is frozen, at which point they will be given the option to concede and exit the game.

Teams could be chosen at random or there could be the option of having precreated teams.  This format of play will be where beginners will start the game,  and it is through demonstrated knowledge of the game mechanics and ability to follow the rules that they can be allowed to play in the big game.  It will also be a place where the factions for each color can come in and train new players while  recruiting for their faction.

07 September, 2012

Kill Stealing

An interesting source of competition found in League of Legends and I'm sure in other game is who gets credit for a kill.  In the game if a player on team A is the last one to damage another player on the opposing team B before that player dies, then the player on team A is rewarded with more in game gold.  If a second player on team A is also damaging the player but does not get the killing strike, then they will get credit as assisting the first player, yet no additional gold is given.  The idea of being rewarded for successfully dispatching an opponent is something put into games in order to encourage player vs player (or PvP) interactions,  but one side effect of this is competition among players on the same team for kills.  The side effect in league of legends is that players become angry at someone who over and over again swoops in last second to land a killing blow and takes the reward for them self, which leads to that player becoming stronger and better equipped, which leads to them getting even more kills because of an imbalance in team strength.  Luckily the effect is not long term as games rarely last longer than 45 minutes, but in games like and Aion where the world is persistent and having better armor drastically increases ones abilities in game it becomes a serious problem.

So the question for me is how will I address this in Hexwars.  First of all I don't think keeping statistics on the form of something like a leader board is a good idea.  I may have personal stats that each player can see how well they have done, and game stats at the end of a round.  There is the natural reward of stopping enemy players from harassing your side, and depriving them of needed resources, but these rewards are faction based rather than individual based.  So instead of angry players refusing to work together, there will be willing teammates who will work to support one another.

20 August, 2012

Insects in game

So going along with the theme that insects are controlling this whole experiment I am considering inserting some hive type insects as NPC (non player characters) to mix things up a bit.  This of course will be added much later as I want to get the basics nailed down first.  The reason I will be adding this is that I am sure I will have to program some AI in order to complete my masters degree.  So the idea I have is this.

1. Wasps nest
This will be the most difficult enemy as it will be flying and it will also have both distance and melee attacks.  If a player comes too close to the nest they will get triggered and all come out of the nest at the same time to attack.  I'd like there to be enough enemies that spawn so as to overwhelm a single player or even a small group ( probably a pod size) meaning that taking one down is a serious event requiring a lot of coordination. Of course taking one down would also give a large amount of rewards in the form of nest material which could then be incorporated into weaponry or vehicles.

2. Bee's nest
This type is going to be in the form of suicide bomber type fighting,  as the AI will move quickly to the player and then explode.  Again it will spawn enough enemies to protect against a fairly large attack,  with a faster respawn rate compared to the other nest types.

3. Ant's nest/hill
These will be ground based insects that will close in quickly, then attach themselves to a player doing constant damage until the player is frozen, then they will move on to the next player and so on.

For all three insect types the only class that can outrun them will be the scout class.  Builder's will be necessary to harvest the nest material in all three cases,  and the firepower of the soldier class will be absolutely necessary in taking down a nest.  Luckily hive algorithms are fairly common so implementation shouldn't be all too difficult, though I haven't yet started the programming yet so I guess I'll find out eventually.

When a nest is not active I'll probably have a few of the insects outside doing simple patrolling.  If an insect is attacked it will make it's way to the nest and set off the alarm if it is not taken completely out before then.  Once in alarm state the various swarms will attack any players in a much wider area than the normal radius, meaning that if a group of players sets off this alarm they had better get away fast or be prepared to fight the whole swarm.

18 August, 2012

Crystal song

I have been working out how I want the energy crystals to work in the game, as they are needed for almost everything that get's created.  I want them to be fairly easy to find yet not so easy that finding them becomes so common that they become a non issue.  To this end I have come up with a nice workaround.  I plan on making the crystals sing.

So I can hear you asking, how are they going to sing?  I plan on making a crystal room that will be fairly large and have multiple connections to the surrounding caves.  This room will only happen on the mid or lower cave levels, and I will have to work out just how many of them per hexfield will be needed.  In the room it will be top to bottom full of crystal blocks.  Blocks will be randomly assigned a tone relating to the midi scale, and there will be a constantly repeating "song" that the blocks will play.  I have already composed this song, and I will post it to soundcloud probably later on today so you can hear it.  Anyway when a player is getting close to the crystal the song will get louder.  I plan on having the crystals emit a low level light source, and when singing the light will become slightly stronger.  When players interact with any of the crystals in the room the song will stop and only the crystals getting hit by melee weapons will play.  This means that players will be able to play little songs if they want to coordinate their efforts.  Builders again will be the only ones able to actually get crystals and fill up their bags and anyone else who happens to be with them.  After a time the song will start again, leading players back to the crystal room.  I plan on using simple MIDI to accomplish the song and the crystal playing by players.  Since this will be one of the few places in the game that will have music, it should provide a the needed guidance to players to meet their crystal gathering needs.  It will also mean that enemy players will be able to know if there are other players in a crystal room as there will be the player controlled sounds emitting instead of the song.