Pre-Order the Game!

Desura Digital Distribution

Monday, May 30, 2011

Research progress

Looks like the last released version is the final version after all, because I've started work on research part of the game. The framework for research is now implemented. It now processes research per turn, and have the code ready for the UI. Everything is implemented for research, except for the research screen, and the sitrep report of a technology that've reached completion.

I'd like to take the time to explain how technology will work in this game. It's not quite the same as other 4x games that I've played. I think all of them have either one-time research for each technology, or limited amounts of levels you can research. For example, in Master of Orion, once you've researched Stellar Converter, you now have that weapon. You can't improve on it except by researching higher technologies that help minitazure the weapon. In Space Empires, you can research the same technology several times, but then the limit is reached.

The improvements either reduces space, or improves damage, but in most cases, it also requires re-designing your ships to use the latest technology. The way my game's technology works aims to minimize frequent ship re-designs.

For one, a technology's space usage is always the same. If level 1 laser cannon requires 7 space, it will always require 7 space, even if it's level 25 or 1,000. What's different is that the damage output is improved. The accuracy stays the same. It's the same with other fields. Engines move faster, but use the same amount of space.

Now you might be thinking, why no minitazurations? My goal is to prevent the "Ultimate Ship Design" that you can put all the best weapons and own everyone with just one ship design. I wanted a "Rock, Paper, Scissors" approach. So different engines will take up different amount of space, each with their own galaxy and combat speed. Different armors and shields performs differently against each weapon type. Different computers impacts the efficiency of different weapons.

If an armor is 80% effective against particle weapons, it means it takes 120% of the damage. If a shield is 50% effective against particle weapon, then it absorbs 50% of its total resistance from the damage before the damage is applied to the armor.

So if I have the armor and shield as described above, and the shield's resistance is 4, and the particle weapon does 10 damage, then the shield absorbs 2 points of damage before it's applied to armor. The remaining 8 is boosted to 9.6 damage due to the armor's weakness against particle weapons. So 9.6 points is deducted from the ship's HP.

Computers can either boost or gimp different weapons. SO you can't just pack a lot of death rays, and huge bombs, and expect it to handle everything. You need ships that's dedicated to bombing, and ships that's dedicated to beam weapons. If a comptuer have 50% beam efficiency, all beam weapons on that ship have its damage cut by 50%, and its accuracy cut by 50% as well.

If you have any questions about how technologies work in my game, feel free to post them in comments!

Saturday, May 28, 2011

Bug fixes and fleshing out stuff

I'm not quite up to tackling implementing research screen/researching new technologies yet, so I decided to work on fixing bugs and adding in missing minor features.

I've fixed two major bugs:
Player turn processing - It now only does each player once per turn, and it starts with the correct first player. Before it could have a player do his turn twice or more.
Mouse picking on galaxy grid - I was doing a step wrong, which caused the mouse picking to be off when zoomed out. This is now fixed

I also fixed some minor bugs, and am now working on ship design screen to fix the display issue (displaying wrong information when selecting items for your ship).

I'm thinking of releasing this version since it don't have anything new, just a bunch of bug fixes and minor features. I'm trying to knock off all items in this list first: If you find any new bugs with the latest version, feel free to add to the list!

Saturday, May 21, 2011

Planet Screen done, and final public release

I'm releasing the final public version. Future versions will be for closed beta testing only, and the next "public" version would be a published digital download (hopefully!).

This version have a lot of new features implemented, and I'll list them:
Working race data and artwork - It loads in racial perks and race avatar/ship art. Racial perks aren't actually being used, but it's loaded in. If perks total is not equal to amount of perks listed (for example, 3 perks with total of 2.5 will fail), the race won't be loaded.

AI files being loaded in - No actual AI in game yet, this just loads in AI names. The plan is that you can add or modify AI files to create different AI players.

New Game Screen overhauled, so instead of 12 players, you can add/remove players. Minimum of 2 to start the game, and there's a max of 16 players.

Placeholder ship art drawing is replaced with the real thing - Your race's ship artwork is now drawn instead of the old ship art that I was using (I can't use this ship art in the final version anyway). A template for the race's graphic file is included so you can see where to put the ship art. The graphic file must be exactly 1024x1024, if not, the race won't load. It's 1024x1024 for performance reasons.

Some other bug fixes/features that I might have forgotten about.

Improved camera control - It moves slowly, then accelerates the nearer you are to the edge of screen.

And finally, the planet list screen is also implemented. This is a major feature. When a planet in list is being hovered over or selected, its star system is expanded on the minimap.

This is what the planet list screen looks like:

Here's the download for this version:
Beyond Beyaan 5-21-2011

Tuesday, May 17, 2011

New Game Screen Overhaul

In the last released version, you couldn't specify the amount of players, just their races or whether they're CPU or human player. This has been kinda annoying me for a bit now, so I finally decided to redo that part. As a result, it now have races and AI data structures for loading and storing. So now you can pick an AI, set its handicap and race, then add it. Or you can add a human player. You can also remove a player from list by clicking on "X" button.

You can also specify an emperor's name by typing a name before clicking on "Add Player". If you add a player without putting in a name, it will randomly generate one for you. In the future, each race will have list of emperor names that it will randomly select, but for now, it's just the random name generator.

Handicap works like this: If you set a player's handicap to 50%, that means that player's planet output is 50% of what they normally would be. So if a planet would produce 10 research points, it will now only produce 5 points. So if you want a tough game, give the AI players a boost by increasing their handicap to above 100%. Handicap ranges from 50% to 200%

I only have two races in my data files, and my art is very bad, but you get the idea on how it works. Here's a screenshot of the new "New Game" screen:

Now that this screen is done, the next and final thing for the next release is the planet list screen. Then that'll be my last release. Only Diplomacy, Research, and Space Combat screens left to do, then the game's core features are complete (aside from saving/loading games)

Sunday, May 15, 2011

Races implemented and other goodies!

I've finished the fleet list screen (screenshot below), and discussed the game with a friend. He mentioned that the new game has a serious bug. If there's less stars than there are empires, the game freezes because it's trying to place each empire in their own star system. So I decided to redo the "New Game" screen and add other features that I've been meaning to add for a while.

What will the new screen include?
An ability to add or remove empire (no longer set to 12 empires like it is right now)
An ability to specify AI type (it won't be levels of difficulty, but rather, AI files that the game loads in) and difficulty slider (if you set AI slider to 110%, it means the AI have 10% bonus to everything it outputs/research/etc, making it more of a challenge). So you can combine, say "TurtleAI" that likes to research and defend more than attack, with slider set to 120% for a tough nut to crack.
An ability to set the percentage of stars that will be black holes
The existing features (galaxy generating, size, racial selection, etc)

So in order to achieve the above, I need to implement both races and AI loading (the AI files would be empty, aside from name of AI). I've added data structure for races, and implemented race loading. Each race have its own graphic file that includes the avatar for the race, and ship art.

When the new game screen is done, I will add the ship art from the races to ship design/construction, then work on the planet list screen. Then I will release the final free version. After that version, I won't be releasing any more versions because I intend to publish this game. There will be a demo which will come out after I've published the game. The published version will have professional artwork, probably redesigned screens if the design can be improved on, sounds, AI, network multiplayer, and bug fixes/polishing.

Yes, that's right, network multiplayer will be added. A friend and i talked about AI development, and one good way to learn how AI should behave is by watching players play the game. So that convinced me to add network multiplayer.

And now, finally, the screenshot of the fleet list screen:

Saturday, May 14, 2011

Fleet List Screen

I've been working a lot on the game lately, polishing it up and improving various features. I also started work on fleet list screen, but before I get to that, I'd like to list improvements that I've made:

When moving around the galaxy, the more close you are to an edge of screen, the faster you will move around. This was Chris' suggestion in one of the comments, and it's working beautifully.

When you move to edge of screen, either below the taskbar, or on right or top of fleet list/planet list in galaxy, it will move the camera around. Again, as per Chris' suggestion. This really makes the game feel more polished in terms of camera movement.

I've tweaked the nebula's movement cost (previously it'd take maybe 16 turns to get to hte closest star, or something like that). Now it's on average 2 or 3 turns for the closest star (same distance, but less movement cost). One side effect of this is that it've boosted my pathfinding algorithm (since it tries less nodes), but now the path looks really straight :( Maybe I can tweak the pathfinding algorithm to use the old values, but maintain the low ship cost?

And now, for the fleet list screen!

Scrap buttons are not implemented, and won't be until empire finances are implemented, so that'll be for later. "Show our fleets" and "Show other fleets" are filters that lets you to narrow down fleets. If you want to see enemy fleets, turn off your fleets so you can see all other fleets.

The plan is, when you click on one of the ships in the list, it will show specifications for that ship (if it's yours, otherwise it'd say unknown). Hovering or selecting a fleet will expand the fleet icon on the galaxy minimap. It's not very clear at this moment, but if you look on the left side of the minimap, under the red star in middle, you can see my purple fleet icon on top of a brown star.

Again, this is in progress, so bear with me. When this screen is done, I will release the next version with all the polishes :)

Tuesday, May 10, 2011

Textbox and Improvements

I decided that before I jump into new screens like research, I better focus on finishing up the screens that I have so far. This means debugging serious bugs, cleaning up bad code, optimizing where I can, and fleshing out missing features.

What I've accomplished so far are those:

Each empire now maintains a list of contacts that is updated each turn. If new contacts are made (overlapping influence), they are added to list of contacts, and the sitrep reports establishing contact with those empires. If contacts are lost (no more overlapping influence), the sitrep reports losing contacts.

Radar is now working. It's not like your regular radar. How it works is if any fleet is on a grid cell that you have either dominant or secondary influence on, it's visible to you. I need to implement end of turn filtering, so all fleets on all human owned influence are visible, while hiding the other fleets.

Influence map now only shows the influence of your empire, and the empires you are in contact with.

I've found a way to optimize text drawing, and as a result, I was able to improve some display issues. For one, the star's name is now centered under the star. Here's an sample (ironically, when I generated a galaxy to take a screenshot, the random name generator created "Yay" as the star's name :D)

Related to text drawing stuff, I also was able to add a new UI component, the textbox. You now can type in names for your ship design. Here's a screenshot of it (the | is flashing at end, indicating that the textbox is selected and you can type into it)

I think there may be other bug fixes, but I'm not sure. Anyway, I'm feeling good about those screens being fleshed out and improved. But I'm also very tired, it's midnight and I need to go to bed.

Sunday, May 8, 2011

New release!

Here's the long awaited new version! What's new in this version?

Situation Report - Clicking on an item will take you to the appropriate screen, and if the event is in the galaxy, center the camera to the event point. It's ugly, but functional. This is not final, but at least you can know what's going on. Report any bugs with this, I haven't tested this fully! Here's a screenshot of it in action! Situation Report can be toggled on/off by pressing space bar. Note, if it's being displayed, you can't interact with anything else except for task bar.

Ship Design - You can now design ships with various technologies. I only included one or two technology for each field, but it should be sufficient example so you can add more! There's a bug with the initial ship (scout) that makes it only 10 BC when it should be 32. It's because it don't actually calculate the cost, it's hardcoded (Yes, I was lazy). This will be fixed later.

Ship Construction - Each planet now can build ships, just be careful to not starve out your people! If you set your agriculture to 0, all people will vanish the next turn. The population growth/starvation formula still need to be tweaked.

Technology Data Structure - The framework for technologies is now in the game. This is not fully done yet, since there's more data to be added (like beam's color, missile/torpedo speed, etc). I just implemented enough for ship design screen. When research screen is being worked on, more will be added.

Alt-Enter (EDIT: my bad, I was thinking of Alt-Enter, but somehow typed Alt-Tab) will switch between fullscreen and windowed modes. Note, the mouse is not exclusive to the game, so if you have multi-monitor setup, it can wander out of the game's screen.

You can now click on a spot in the galaxy, and the game will center the camera to that spot, as per a reader's suggestion. Mouse near edge scrolling still need to be worked on.

Some bug fixes, like the left arrow on planet's 5 output fields.

This is a pretty big update, so please let me know of any bugs so I can fix them for the next version!

Be sure to download SlimDX as mentioned in this post.

And now, finally, the download link! Beyond Beyaan May 8, 2011

Saturday, May 7, 2011

Situation Report

I'm currently working on notifying players of events that has occured between turns. Currently they include systems that were just explored, planets that just colonized, ship construction reports, and planets that population died off due to starvation. The situation report is toggable by pressing space. The data is all there, I just need to work on displaying the situation report, and having it react appropriately when clicked on. For example, if you click on "Planet X produced 2 Scout ships", it would take you to that planet's star system, and have the planet selected in list of planets.

Since I implemented keyboard input (it was never there before), I decided to take the opportunity to implement the ability to switch between windowed and full screen modes by pressing alt-enter. It's working beautifully, I just need to add the ability to change resolution, then we're set for graphic options. But that'll be in a future release.

Also, because the keyboard input is now being handled, I think I'll implement TextBox UI component so you can actually name your ships whatever you want. As a result, this next version will be a bit delayed, but there's a lot of new goodies that will make it worth it! I'm also implementing suggestions that a reader suggested, such as moving the galaxy using mouse. So hopefully the game will feel a bit more polished the next release :)

Since tomorrow is Mother's Day, I'm visiting my family, so I won't be able to work on the game for the rest of day today. This post should whet your appetite though :)

Wednesday, May 4, 2011

Ship Construction!

Yes, that's right, ship constructing is now in the game! You can select a ship design to build, allocate construction points to it, and hit turn and build it! If you change to another design when the ship is partially built, it transfers the construction points to the next design (Yeah, it's unrealistic, but hey, it keeps things simple code-wise)

Here's a screenshot of the ship construction:

However, I discovered several bugs when I implemented this. Each confirmed ship design overwrites all other ship designs except for scout. The left arrows on slider bars for planet screen stopped working when I implemented this. And maybe some others that I haven't discovered yet.

The next release is getting nearer! Just need to squash the above bugs (there are a lot of other bugs, but those are the most serious), and check that ship design screen is indeed done. Speaking of ship design, here's the "final" (final meaning for now, until I get professional looking art :) ) ship design screen:

Special thanks goes to EmP for suggesting an improved layout for the ship information display!

Sunday, May 1, 2011

Ship Design Screen Done!

It's finally done! Here's the screenshot. Note, this is not the final look for it, just that the functionality of the ship design screen is done. All the vital information is displayed.

There are only a few things before I release the next version. They are:
Adding ship construction UI to planet screen
Processing ship construction in end of turn
Update fleet code to factor in engine tech's speed (currently it's hardcoded to 10 speed)
Some bug fixes and suggestions implemented hopefully.

Also, I plan on implementing textbox where you can input names, but for now, it generates a random name for each design. Next version should have text input.