Difference between revisions of "Source Code"
m (→official) |
(→Visual Studio: Visual C++ Library as standard installed component ...don't forget to select or install this manually! In VS 201 if \Supremacy Native is unload (sign is greyed out a little bit)) |
||
Line 220: | Line 220: | ||
*try Visual Studio '''Community''' 2015 RC - to compile the code (ISO is recommend) ... still need to check if Supremacy code compiles with it, so instead we might need VS2013 https://www.visualstudio.com/downloads/visual-studio-2015-downloads-vs - you need the "Community" Version | *try Visual Studio '''Community''' 2015 RC - to compile the code (ISO is recommend) ... still need to check if Supremacy code compiles with it, so instead we might need VS2013 https://www.visualstudio.com/downloads/visual-studio-2015-downloads-vs - you need the "Community" Version | ||
+ | **IMPORTANT: As Microsoft no longer provides Visual C++ Library as standard installed component ...don't forget to select or install this manually! In VS 2015 you can recognize it if \Supremacy Native is unload (sign is greyed out a little bit) | ||
*Visual Studio Express 2013 (Express version is free) http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop | *Visual Studio Express 2013 (Express version is free) http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop |
Revision as of 13:18, 1 August 2015
Contents
Source Code
http://guganeshan.com/blog/setting-up-git-and-tortoisegit-with-bitbucket-step-by-step.html
official
- last source code https://bitbucket.org/mstrobel/supremacy/overview (Visual C# Studio 2010)
- Mike's Post: build in VS2010 with .NET 4.0. You may need the C# Async CTP. http://bote2.square7.ch/forum/viewtopic.php?p=70790#p70790
- http://botf2.star-trek-games.com/viewtopic.php?p=70781#p70781 Supremacy.Game.GameEngine is where you'll find most of the game logic. That's where most of the turn processing happens.
- The SupremacyCore project is where you'll find the foundation of the game.
- SupremacyService is just the game server (all the important bits it interacts with are in SupremacyCore).
- SupremacyClientComponents is UI infrastructure.
- SupremacyUI and SupremacyWPF are older UI infrastructure stuff, much of which has been phased out and replaced by newer and better stuff in SupremacyClientComponents. The most interesting stuff in SupremacyUI is GalaxyGridPanel, which draws the galactic map. It also has the spinning planet views.
- Supremacy.Xna is where the XNA/3D stuff is located--it's not used heavily yet, but it has some effects for the invasion screen, a newer star renderer, a 3D spinning ship renderer, etc.
- Supremacy.Scripting is an expression language parser/compiler.
- SupremacyClient is the main graphical client and has most of the game screen implementations.
- old source code can be taken from here: http://supremacy.codeplex.com/ (last upload from MStrobel at 03.01.2011)
Bitbucket
Changes
see here or https://bitbucket.org/mstrobel/supremacy/commits/branch/default
some code
miscellaneous
- \Mainline\SupremacyUI\SystemProductionPanel.cs
- \Mainline\SupremacyCore\Orbitals\FleetOrders.cs -> all items inside a sector
- \Mainline\SupremacyClientComponents\Controls\InfoCard\InfoCard.cs (-> Tooltips ??)
- \Mainline\SupremacyClient\themes\Federation\InfoCard.xaml -> <Setter Property="Width" Value="500" /> (BEFORE: 250)
- \Mainline\SupremacyCore\Universe\Colony.cs
- \Mainline\SupremacyClient\Views\ColonyScreen\ColonyStructureListView.xaml
- Size of this area: 720 x 240
- \Mainline\SupremacyClient\Views\GalaxyScreen\TaskForceListView.xaml
Ships
\Fleets.cs \FleetOrders.cs
Sounds
- \Mainline\SupremacyClient\AudioEngine.cs (for Music), for Sounds >> SoundPlayerAction is used (search for \Resources\UI\Federation\SoundsButtonClick.wav)
- and in \Mainline\SupremacyClientComponents\Views\SystemAssaultScreen\SystemAssaultScreenViewModel.cs -> Uri is used (e.g. CombatLaser.wav)
Galaxy Generator
- \Mainline\SupremacyCore\Universe\GalaxyGenerator.cs
older list
where | Folder | File | Function | Date | Description | Custom1 | Custom2
|
---|---|---|---|---|---|---|---|
S-Core | Game | GameContext.cs |
initialising game |
||||
S-Core | Game | GameEngine.cs | DoProduction(GameContext game) |
Raw Materials, Deuterium, Dilithium is collected cross over all colonies and used by all colonies |
|||
S-Core | Game | GameEngine.cs | DoShipProduction(GameContext game) | ||||
S-Core | Combat | InvasionArena.cs |
SystemAssault |
||||
S-Core | Orbital | Shipyard.cs | GetBuildOutput(int slot) | 2014-01-15 |
just selects output (active?) and bonus (BonusType.PercentShipBuilding), since 2014-01-15 also case PopulationRatio or IndustryRatio |
||
S-Core | Universe | Colony.cs | GetProductionOutput(ProductionCategory category) |
see last line, too !
float moraleMod = _morale.CurrentValue / (0.5f * MoraleHelper.MaxValue); baseOutput = (int)(moraleMod * baseOutput);
float moraleMod = _morale.CurrentValue / (0.5f * MoraleHelper.MaxValue); baseOutput = (int)(moraleMod * baseOutput);
|
|||
S-Core | Universe | Colony.cs | planet.HasFoodBonus (OutputModifier) |
if (planet.HasFoodBonus) modifier.Efficiency += 0.15f; |
|||
S-Core | Universe | Colony.cs | planet.HasEnergyBonus (OutputModifier) |
if (planet.HasEnergyBonus) modifier.Efficiency += 0.15f; |
|||
S-ClientComp | Views\GalaxyScreen | GalaxyScreenView.cs | GalaxyScreenView() | GalaxyView Hotkeys Definition (see Hotkeys) |
Botf2-coding-practice
- prepare:
- ...we are using SourceTree, provided by bitbucket (another option: TortoiseHg with Mercurial - to access the supremacy code repository http://tortoisehg.bitbucket.org/)
- PuTTYgen - to generate a ssh key to allow using ssh protocol instead of slow https http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
- or use C:\Program Files (x86)\Atlassian\SourceTree\tools\putty..puttygen.exe....generate a key (using a phrase is not neccessary)
- copy the public key (4-5 lines) into your bitbucket account/profile under SSH Keys, label it with any title and CopyPaste
- we are using Visual Studio Community 2013 Update 4 (select the Community Version) https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx
- we are not(!) using Visual Studio Community 2015 RC - to compile the code (ISO is recommend)....still need to check if Supremacy code compiles with it, so instead we might need to depend on VS2013 http://www.visualstudio.com/downloads/visual-studio-2015-downloads-vs....for VS 2015 we read to create a new project, import Supremacy and go through all the issues
- you also need to have an account on http://bitbucket.org
- and you should have Skype installed to participate in the meetings we have
- when you attempt to clone by ssh instead of https, check the following tutorial: http://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Mercurial
- here some simple text editors useful to edit stuff like xml files, just pick the one you prefer they all are great:
SourceTree
- Tools: 3rd point: OPTIONS
- SSH Client Configuration:
- SSH Key: c:\....\ReginaldPutty.ppk
- SSH Client: (IMPORTANT) PuTTY/Link (not SSH !!)
- automatically start: yes
Visual Studio
It's possible (and standard) to compile the game with Visual Studio Expres. No further stuff of programs are needed. Mention that the compiled exe is then in \SupremacyClient\bin\Release.
- try Visual Studio Community 2015 RC - to compile the code (ISO is recommend) ... still need to check if Supremacy code compiles with it, so instead we might need VS2013 https://www.visualstudio.com/downloads/visual-studio-2015-downloads-vs - you need the "Community" Version
- IMPORTANT: As Microsoft no longer provides Visual C++ Library as standard installed component ...don't forget to select or install this manually! In VS 2015 you can recognize it if \Supremacy Native is unload (sign is greyed out a little bit)
- Visual Studio Express 2013 (Express version is free) http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop
- Visual Studio Express 2012 (Express version is free) http://www.visualstudio.com/downloads/download-visual-studio-vs#d-express-windows-desktop
- Visual Studio Express 2008 (German) http://www.microsoft.com/de-de/download/details.aspx?id=13276
Visual C#
build in Visual Studio
SunBurn
Kenneth is working sometimes with SunBurn...this might be a site for this http://channel9.msdn.com/coding4fun/blog/No-need-for-sunscreen-you-want-this-SunBurn-SunBurn-v2-RTMs-including-the-free-SunBurn-Framework-Edi
.Net
you should use latest .Net-version (2014: version 4.5.1)
XNA
"Could not load file or assembly 'Microsoft.Xna.Framework.dll' or one of its dependencies. The specified module could not be found."
- suggestion by reg: go to \Resources\Models and rename the "Models"-folder to "Models-SetOffline" or something else (if building a ship no model is shown -as it is to most of the ships- but otherwise the game could work fine)
This suggests the problem is with your XNA installation. The game uses XNA to display the 3D ship models in the shipyard. There's no way to disable the models so XNA wouldn't be needed. So to be able to play the game, i'd advise to uninstall XNA, then install the latest version.
Download link: http://www.microsoft.com/en-gb/download/details.aspx?id=20914