GithubHelp home page GithubHelp logo

drogoganor / opendr Goto Github PK

View Code? Open in Web Editor NEW
62.0 62.0 1.0 29 MB

A work-in-progress recreation of the Auran RTS classic for the OpenRA strategy game engine.

License: GNU General Public License v3.0

Makefile 2.22% C# 65.20% Shell 12.26% Batchfile 3.04% PowerShell 5.07% NSIS 2.69% Lua 3.66% Fluent 5.85%

opendr's People

Contributors

abcdefg30 avatar drogoganor avatar fusion809 avatar jrb0001 avatar lawando avatar mailaender avatar mustaphatr avatar pchote avatar penev92 avatar phrohdoh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

shpookys

opendr's Issues

AppImage for commit 365732e8a0a0fcf106e1c8dbca10f4c5fef898e8 crashes after content installer runs

Hi,

I decided to try out this fine project's AppImage, which I made by running:

make
cd packaging/linux
./buildpackage.sh $(git rev-list --count --branches master) .

in this repo, at commit 365732e, then launching the resulting AppImage, DarkReign-185.AppImage. The content installer ran fine, but then immediately after it crashed with the error:

        ura-v0.25 Alpha: Red Alert: Unplugged (v0.25 Alpha)
        dr-185: Dark Reign (185)
Loading mod: dr
Loading mod: modcontent
Loading mod: dr
Exception of type `System.ArgumentException`: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
  at System.ThrowHelper.ThrowArgumentException (System.ExceptionResource resource) [0x00000] in /home/abuild/rpmbuild/BUILD/mono-5.10.1.47/mcs/class/referencesource/mscorlib/system/throwhelper.cs:75 
  at System.Collections.Generic.List`1[T].Reverse (System.Int32 index, System.Int32 count) [0x00023] in <be6fee20a4cf451a8bc9b85c19fe2133>:0 
  at OpenRA.Mods.Dr.SpriteLoaders.DrCrsLoader.ParseFrames (System.IO.Stream s) [0x001d7] in /data/GitHub/others/DarkReign/OpenRA.Mods.Dr/SpriteLoaders/DrCrsLoader.cs:149 
  at OpenRA.Mods.Dr.SpriteLoaders.DrCrsLoader.TryParseSprite (System.IO.Stream s, OpenRA.Graphics.ISpriteFrame[]& frames) [0x00017] in /data/GitHub/others/DarkReign/OpenRA.Mods.Dr/SpriteLoaders/DrCrsLoader.cs:162 
  at OpenRA.Graphics.FrameLoader.GetFrames (System.IO.Stream stream, OpenRA.Graphics.ISpriteLoader[] loaders) [0x0000c] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Graphics.FrameLoader.GetFrames (OpenRA.FileSystem.IReadOnlyFileSystem fileSystem, System.String filename, OpenRA.Graphics.ISpriteLoader[] loaders) [0x0000a] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Graphics.FrameCache+<>c__DisplayClass1_0.<.ctor>b__0 (System.String filename) [0x00000] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Exts.GetOrAdd[K,V] (System.Collections.Generic.Dictionary`2[TKey,TValue] d, K k, System.Func`2[T,TResult] createFn) [0x00011] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Primitives.Cache`2[T,U].get_Item (T key) [0x00001] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Graphics.FrameCache.get_Item (System.String filename) [0x00001] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Graphics.CursorSequence..ctor (OpenRA.Graphics.FrameCache cache, System.String name, System.String cursorSrc, System.String palette, OpenRA.MiniYaml info) [0x00111] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Graphics.CursorProvider..ctor (OpenRA.ModData modData) [0x00225] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.ModData.InitializeLoaders (OpenRA.FileSystem.IReadOnlyFileSystem fileSystem) [0x00021] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Game.InitializeMod (System.String mod, OpenRA.Arguments args) [0x00227] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Mods.Common.LoadScreens.ModContentLoadScreen+<>c__DisplayClass4_0.<StartGame>b__1 () [0x00000] in /data/GitHub/others/DarkReign/engine/OpenRA.Mods.Common/LoadScreens/ModContentLoadScreen.cs:66 
  at OpenRA.Primitives.ActionQueue.PerformActions (System.Int64 currentTime) [0x00080] in <f74d2f656c914791b58c38a3626e654c>:0 


  at OpenRA.Game.LogicTick () [0x0000d] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Game.Loop () [0x000d9] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Game.Run () [0x00044] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Game.InitializeAndRun (System.String[] args) [0x00013] in <f74d2f656c914791b58c38a3626e654c>:0 
  at OpenRA.Program.Main (System.String[] args) [0x0004e] in <f74d2f656c914791b58c38a3626e654c>:0 

AL lib: FreeContext: (0x5588bd575520) Deleting 32 Source(s)

My OS is openSUSE Tumbleweed 20180926 (x86-64), with kernel 4.18.8-1-default, Lua 5.1.5 and Mono 5.10.1.47. Here are my logs:

Here's the AppImage: https://drive.google.com/open?id=15k0qxR_VVT2EY4oACzOUu4nhdp9fRkNI.

Thanks for your time,
Brenton

AICash trait is unneeded.

A CashTricker trait conditioned to rely on the AI condition on the Player actor should be able to do the job.

Crashes due to missing original + expansion assets (discussion)

Currently the mod can install the assets from the demo release instead of the full game. The demo has a lot of content but is missing the following assets:

Tilesets:

  • Snow

Sprites:

  • FGPlanetaryDefense: t0rad1l0
  • CivilianHall: t0hal1l0
  • CivilianLargeHall: t0lar1l0
  • CivilianSmallHall: t0sma1l0
  • CivilianDestiny: t0des1l0

Sounds

  • ClickSound: gxclkoc1

This is a problem if a player with the full game installed creates a Snow map, or uses any of the listed actors in a map - if another player with only the demo installed attempts to play the map, their game client will crash.

In addition, the Dark Reign Expansion content is currently optional. The expansion content is fairly neatly contained: there are two new factions with new art and the original factions are unchanged. However, the expansion also has an exclusive tileset: Alien. This has the same problem as the Snow tileset: players without the content installed will crash to desktop.

Another problem with the Expansion being optional is that the expansion factions are exposed to the player whether or not they have the content installed:

image

I had hoped to signal to players that these require the expansion content by putting them under the subheader "Expansion Only", but this is an easy mistake to make. Especially if playing multiplayer, if any user doesn't have the expansion content but picks an expansion faction, they'll be dropped from the game without any obvious message telling them they are missing the expansion content.

These problems are an ongoing frustration for users attempting to play the mod. As one exasperated player put it:

if your mod can't work with only the assets from the demo, why even use the demo as an asset source?

I was hoping that one day OpenRA might support features to "choose a DR flavor" with separate rulesets to restrict factions, actors, sounds, and tilesets depending on what content is installed. But this would be a significant amount of work and is probably unlikely for the forseeable future.

I am considering removing the demo as an asset source and making the expansion content mandatory. This will eliminate any missing asset problems, but is much more inconvenient to install content. Players will need to use the Advanced Install window and the Detect Disc button to detect a GOG install or CD/mounted image(s):

image

If using mounted disc images, the player will also need to alt+tab to change the disc image between installs which is an additional difficulty.

Not to mention, removing the demo means the player needs a paid copy of the full game and expansion:

I really want to try Dark Reign (since I never played it) but if you make me spend money for it: I don't have the money to do so and [it] will mean you lose out on a player.

Which is a legitimate complaint. So what is the solution? I am leaning towards removing the demo and making the expansion mandatory because it will prevent the game from crashing. It's a higher barrier for entry to get the content installed, but it's probably worth it for a better player experience. And also I can use the snow tileset :)

What do you think?

Linux: How to add installed Windows GOG installation?

Hi!
I'm running Linux. I tried the AppImage and also build it from source. But i cannot figure out how to add the content to the game from an GOG installation. I have ran the game within a virtualbox using the GOG installation. That went pretty good.

So, how to add the contents to the Linux installation?
Update: Never mind, i found it out:

mkdir -p ~/.openra/Content/dr/SNOW
mkdir -p ~/.openra/Content/dr/BARREN
mkdir -p ~/.openra/Content/dr/JUNGLE
mkdir -p ~/.openra/Content/dr/ALIEN

cp dark/graphics/SPRITES.FTG ~/.openra/Content/dr/SPRITES.FTG 
cp dark/sndfx/SOUNDS.FTG ~/.openra/Content/dr/SOUNDS.FTG
cp dark/shell/SOUNDS.FTG ~/.openra/Content/dr/shell/SOUNDS.FTG
cp dark/graphics/SNOW/SNOW.TIL ~/.openra/Content/dr/SNOW/SNOW.TIL
cp dark/graphics/SNOW/SNOW.PAL ~/.openra/Content/dr/SNOW/SNOW.PAL
cp dark/graphics/SNOW/SPRITES.FTG ~/.openra/Content/dr/SNOW/SPRITES.FTG
cp dark/graphics/BARREN/BARREN.TIL ~/.openra/Content/dr/BARREN/BARREN.TIL
cp dark/graphics/BARREN/BARREN.PAL ~/.openra/Content/dr/BARREN/BARREN.PAL
cp dark/graphics/BARREN/SPRITES.FTG ~/.openra/Content/dr/BARREN/SPRITES.FTG
cp dark/graphics/JUNGLE/JUNGLE.TIL ~/.openra/Content/dr/JUNGLE/JUNGLE.TIL
cp dark/graphics/JUNGLE/JUNGLE.PAL ~/.openra/Content/dr/JUNGLE/JUNGLE.PAL
cp dark/graphics/JUNGLE/SPRITES.FTG ~/.openra/Content/dr/JUNGLE/SPRITES.FTG
cp dark/graphics/spriteEx.ftg ~/.openra/Content/dr/spriteEx.ftg
cp dark/sndfx/soundsEx.ftg ~/.openra/Content/dr/soundsEx.ftg
cp dark/graphics/alien/ALIEN.TIL ~/.openra/Content/dr/ALIEN/ALIEN.TIL
cp dark/graphics/alien/ALIEN.PAL ~/.openra/Content/dr/ALIEN/ALIEN.PAL
cp dark/graphics/alien/SPRITEEX.FTG ~/.openra/Content/dr/ALIEN/SPRITEEX.FTG
cp dark/graphics/BARREN/spriteEx.ftg ~/.openra/Content/dr/BARREN/spriteEx.ftg
cp dark/graphics/JUNGLE/spriteEx.ftg ~/.openra/Content/dr/JUNGLE/spriteEx.ftg
cp dark/graphics/SNOW/spriteEx.ftg ~/.openra/Content/dr/SNOW/spriteEx.ftg
cp dark/graphics/INTFACE/MOUSE.CRS ~/.openra/Content/dr/mouse.crs 

Game crashes after I win against five motionless Normal AIs

Hi,

At the end of a game subject to #20 the game crashed on me. The logs are in (the latest of these exceptions is the exception log for this) logs.zip. My OS is x86-64 Fedora 28, with the i3 window manager as my UI. mono --version returns:

Mono JIT compiler version 5.16.0.187 (tarball Mon Oct  8 08:52:21 UTC 2018)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug 
        Interpreter:   yes
        LLVM:          yes(3.6.0svn-mono-/)
        GC:            sgen (concurrent by default)

On this platform OpenRA Red Alert 20180923 runs fine (both the AppImage and it installed via my package manager), in case you're wondering whether my version of Mono or Lua is to blame.

Thanks for your time,
Brenton

Commit 266 crashes on NixOS unstable: Object reference not set to an instance of an object

Hi,

Commit 266 (920b476) crashes early on during a game with the error:

OpenRA engine version e08b75c
Dark Reign mod version 266
on map 94781f4826ddd725e727ac235c4c04c118b1c89b (6chibe by Dark Reign).
Date: 2019-01-29 14:33:10Z
Operating System: Linux (Unix 4.19.16.0)
Runtime Version: Mono 5.16.0.220 (tarball Sun Jan  6 14:59:55 UTC 2019) CLR 4.0.30319.42000
Exception of type `System.NullReferenceException`: Object reference not set to an instance of an object
  at OpenRA.Mods.Common.Widgets.Logic.ProductionTooltipLogic+<ProductionTooltipLogic>c__AnonStorey0.<>m__2 () [0x003e0] in /build/source/engine/OpenRA.Mods.Common/Widgets/Logic/Ingame/ProductionTooltipLogic.cs:121 
  at OpenRA.Mods.Common.Widgets.TooltipContainerWidget.Draw () [0x00007] in /build/source/engine/OpenRA.Mods.Common/Widgets/TooltipContainerWidget.cs:47 
  at OpenRA.Widgets.Widget.DrawOuter () [0x00011] in <015bb1c82744483481903b49e9433449>:0 
  at OpenRA.Widgets.Widget.DrawOuter () [0x0002f] in <015bb1c82744483481903b49e9433449>:0 
  at OpenRA.Widgets.Widget.DrawOuter () [0x0002f] in <015bb1c82744483481903b49e9433449>:0 
  at OpenRA.Widgets.Ui.Draw () [0x00001] in <015bb1c82744483481903b49e9433449>:0 
  at OpenRA.Game.RenderTick () [0x000bf] in <015bb1c82744483481903b49e9433449>:0 
  at OpenRA.Game.Loop () [0x00143] in <015bb1c82744483481903b49e9433449>:0 
  at OpenRA.Game.Run () [0x00044] in <015bb1c82744483481903b49e9433449>:0 
  at OpenRA.Game.InitializeAndRun (System.String[] args) [0x00013] in <015bb1c82744483481903b49e9433449>:0 
  at OpenRA.Program.Main (System.String[] args) [0x0004e] in <015bb1c82744483481903b49e9433449>:0 

my full logs and replay are here: openra-dr-266-runtime-crash.zip.

Thanks for your time,
Brenton

Crash System.NullReferenceException for OpenRA.Actor.get_CenterPosition

I think this is a different Issue than #31 but might be related(?)
Exception log:

OpenRA engine version playtest-20190106
Dark Reign mod version playtest-20190206
on map dfcded52913e5433fc3415962359a2255f75d778 (D-Missions: F. Guard 01 by DMW).
Date: 2019-02-08 00:31:04Z
Operating System: Linux (Unix 4.20.5.200)
Runtime Version: Mono 4.8.0 (Stable 4.8.0.520/8f6d0f6 Wed Sep 20 21:27:10 UTC 2017) CLR 4.0.30319.42000
Exception of type `System.NullReferenceException`: Object reference not set to an instance of an object
  at OpenRA.Actor.get_CenterPosition () [0x00007] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Graphics.Viewport.<Center>m__0 (OpenRA.Actor a) [0x00000] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at (wrapper delegate-invoke) System.Func`2[OpenRA.Actor,OpenRA.WPos]:invoke_TResult_T (OpenRA.Actor)
  at System.Linq.Enumerable+WhereSelectEnumerableIterator`2[TSource,TResult].MoveNext () [0x00064] in /builddir/build/BUILD/mono-4.8.0/mcs/class/referencesource/System.Core/System/Linq/Enumerable.cs:285 
  at System.Linq.Enumerable.Count[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0004b] in /builddir/build/BUILD/mono-4.8.0/mcs/class/referencesource/System.Core/System/Linq/Enumerable.cs:1226 
  at OpenRA.IEnumerableExtensions.Average (System.Collections.Generic.IEnumerable`1[T] source) [0x00001] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Graphics.Viewport.Center (System.Collections.Generic.IEnumerable`1[T] actors) [0x00035] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Mods.Common.Widgets.Logic.Ingame.CycleProductionActorsHotkeyLogic.OnHotkeyActivated (OpenRA.KeyInput e) [0x00108] in /home/travis/build/drogoganor/DarkReign/engine/OpenRA.Mods.Common/Widgets/Logic/Ingame/Hotkeys/CycleProductionActorsHotkeyLogic.cs:67 
  at OpenRA.Mods.Common.Widgets.Logic.SingleHotkeyBaseLogic+<SingleHotkeyBaseLogic>c__AnonStorey0.<>m__0 (OpenRA.KeyInput e) [0x00025] in /home/travis/build/drogoganor/DarkReign/engine/OpenRA.Mods.Common/Widgets/Logic/SingleHotkeyBaseLogic.cs:32 
  at OpenRA.Mods.Common.Widgets.LogicKeyListenerWidget.HandleKeyPress (OpenRA.KeyInput e) [0x0001d] in /home/travis/build/drogoganor/DarkReign/engine/OpenRA.Mods.Common/Widgets/LogicKeyListenerWidget.cs:25 
  at OpenRA.Widgets.Widget.HandleKeyPressOuter (OpenRA.KeyInput e) [0x0006b] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Widgets.Widget.HandleKeyPressOuter (OpenRA.KeyInput e) [0x0003b] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Widgets.Widget.HandleKeyPressOuter (OpenRA.KeyInput e) [0x0003b] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Widgets.Ui.HandleKeyPress (OpenRA.KeyInput e) [0x0001c] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.DefaultInputHandler+<OnKeyInput>c__AnonStorey0.<>m__0 () [0x00000] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Sync.RunUnsynced[T] (System.Boolean checkSyncHash, OpenRA.World world, System.Func`1[TResult] fn) [0x00033] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.DefaultInputHandler.OnKeyInput (OpenRA.KeyInput input) [0x0000e] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Platforms.Default.Sdl2Input.PumpInput (OpenRA.Platforms.Default.Sdl2PlatformWindow device, OpenRA.IInputHandler inputHandler) [0x003b9] in <c655ac44daf046df86ec917481879627>:0 
  at OpenRA.Platforms.Default.Sdl2PlatformWindow.PumpInput (OpenRA.IInputHandler inputHandler) [0x00007] in <c655ac44daf046df86ec917481879627>:0 
  at OpenRA.Renderer.EndFrame (OpenRA.IInputHandler inputHandler) [0x0000d] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Game.RenderTick () [0x00142] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Game.Loop () [0x00142] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Game.Run () [0x00042] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Game.InitializeAndRun (System.String[] args) [0x00011] in <e048e680f3a847fbb277180ecfcbc567>:0 
  at OpenRA.Program.Main (System.String[] args) [0x0004f] in <e048e680f3a847fbb277180ecfcbc567>:0 

Building underlay sprites are in the wrong palette

jungle-underlay

There are different versions of the building underlay sprites for each tileset. Currently it is hard coded to the barren tileset in the sequences like so:

idle-top: barren|ncpow1l0.spr
	ZOffset: -8192
	Start: 1

This ncpow1I0.spr sprite file exists in each of the tileset archives: BARREN.FTG, SNOW.FTG, JUNGLE.FTG, etc.

But this hard-coding means it will only use the barren tileset underlay sprites, no matter what tileset we're using. This looks horrible as it's in the wrong palette, as seen above with the horrible green.

In the rules this sequence is shown using a HitShape and a WithIdleOverlay:

HitShape@LAYER1:
	Type: Rectangle
		TopLeft: -512, -1536
		BottomRight: 512, -512
WithIdleOverlay@LAYER1:
		Palette: terrain
		Sequence: idle-top

It will take code changes to create some way to load a sprite from the current tileset archive instead of hard-coding it like this.

Sniper and scout cannot disguise as trees

The Scout and Sniper can disguise themselves as trees, but moving will remove the disguise.

I've tried to achieve this with these yaml settings on the actor:

Disguise:
	DisguisedCondition: disguise
	ValidStances: Neutral
	TargetTypes: Trees
	RevealDisguiseOn: Move

-WithInfantryBody:
WithDisguisingInfantryBody:
	MoveSequence: idle
	DefaultAttackSequence: idle
	IdleSequences: idle
	StandSequences: stand

And the actor can disguise as a tree. However, movement should break the disguise, but it doesn't. The unit remains as a tree:

treedisguise

Medics and mechanics continuously heal/repair units

A recent update requires healing to be contingent on a condition. I've done the following to support this:

^Humanoid:
GrantConditionOnDamageState@DAMAGED:
Condition: damaged
ValidDamageStates: Light, Medium, Heavy, Critical
Targetable@HEAL:
RequiresCondition: damaged
TargetTypes: Heal

And weapon:

Heal:
ReloadDelay: 135
Range: 2c512
Report: gxheaoc0.wav
ValidTargets: Infantry
Projectile: Bullet
Speed: 1c682
Warhead@1Dam: SpreadDamage
Spread: 256
Damage: -85
ValidStances: Ally
ValidTargets: Infantry
DebugOverlayColor: 00FF00

Repair:
Inherits: Heal
ReloadDelay: 150
Report: gxrepoc0.wav
ValidTargets: Repair
Warhead@1Dam: SpreadDamage
Damage: -85
ValidTargets: Repair

But medics and mechanics continuously repair/heal at full health. I must be missing something.

Bink video decoder

DR uses Bink video. The format was reverse-engineered by the FFmpeg project and Bink decoding is supported by the open-source libavcodec library.

This could be wrapped, if the license permits.

A nice to have in the long term.

Question: How do you generate maps

Just wondering how to support the project with more maps.
How did you generate those maps? Are they "made" manually or did you use some sort of tool to convert original Dark Reign scenarios to your mod?

Maybe i can write some conversion tool. Could you give me some information on that?

Abandoned?

Has this project been abandoned? It's been a year since the last commit..

Construction rigs can't build buildings like the original

Building in the original had you pick a building from the build palette, place it, and having the rig move to the site and begin building. Much like Starcraft or Warcraft.

drrig
drrig2

This let the player build several buildings in parallel.

OpenRA doesn't really support this yet. But, IceReaper has worked on parallel queues before: OpenRA/OpenRA#14201

This was not completed due to lack of time. But, both IceReaper and I both need this feature, him for his KKND mod.

Apparently the mod Medieval Warfare has this implemented, but I haven't looked at it yet.

This is probably the most important feature currently for DR.

Installer fails to find the required files

I tried the latest revision of this mod using the Archive.org CD version of Dark Reign, but it fails to find the required files when the CD image is mounted (in ArchLinux). Maybe the checksum is not correct?

$ md5sum /run/media/g/DKREIGN/install/data/dark/graphics/sprites.ftg 
30e26c563822b646cef9fc6c01d13d0f  /run/media/g/DKREIGN/install/data/dark/graphics/sprites.ftg

No shadows on units, buildings, or decorations

DR shadow images are separate .spr files from the unit, building, or decoration .spr files. Currently we can manually add them together like so for decorations:

Sequence:

aoclf000.spr:
	Defaults:
		AddExtension: False
	idle:
		Start: 0
		Length: 1
	shadow: aoclf0sh.spr
		Start: 0
		Length: 1
		Offset: 13, 12

Rule:

aoclf000.spr:
	Inherits: ^DrRock
	Building:
		Footprint: __ x_
		Dimensions: 2,2
	HitShape@LAYER1:
		Type: Rectangle
			TopLeft: -512, -512
			BottomRight: 512, 512
	WithIdleOverlay@LAYER1:
		Palette: shadow
		Sequence: shadow

But I'm not sure how we're going to handle units which have direction and animation. There is also a ton of work involved in devising the Offset of the shadow for all the units, buildings and decorations.

Normal AI is not working at all on Fedora 28

Hi,

While the game starts fine on Linux now the normal AI does absolutely nothing, just leaves the construction rig to stand there. I was playing against five normal AIs and they were all just standing there.

My logs (of the exception logs only the last one pertains to this issue) are here: logs.zip. You'll find evidence in it of the next bug I'm about to report too, as at the end of a game the game crashed.

Thanks for your time,
Brenton

Commit 237 (c2f0c2d), but not 236 crashes on start up on Arch Linux: Cannot locate type: TerrainRendererInfo

Hi,

Sadly commit 237 crashes, on start up on Arch Linux with this exception log. The most important lines are probably:

Loading mod: dr
Exception of type `System.AggregateException`: One or more errors occurred.
Inner
  Exception of type `System.InvalidOperationException`: Cannot locate type: TerrainRendererInfo
    at OpenRA.ObjectCreator+<>c.<.cctor>b__20_0 (System.String s) [0x00015] in <f7e8b215d0d54cb597299ec7f4b505f5>:0 
  at OpenRA.ObjectCreator.CreateObject[T] (System.String className, System.Collections.Generic.Dictionary`2[TKey,TValue] args) [0x0001a] in <f7e8b215d0d54cb597299ec7f4b505f5>:0 
  at OpenRA.ObjectCreator.CreateObject[T] (System.String className) [0x00008] in <f7e8b215d0d54cb597299ec7f4b505f5>:0 

The only other log written to during this error was perf.log, which can be found here.

If there's any other pieces of information you need to diagnose and fix this problem simply ask.

Thanks for your time,
Brenton

Build fails for commit #105 (e91be6b) on Arch and openSUSE Tumbleweed

Hi,

Commit 104 build absolutely fine on Arch and Tumbleweed, but 105's build failed with the error (no other warnings or issues elsewhere in the compile process):

CSC mods/d2k/OpenRA.Mods.D2k.dll
CSC OpenRA.Utility.exe
CSC OpenRA.Server.exe
make[1]: Leaving directory '/data/GitHub/others/DarkReign/engine'
Graphics/HackySpriteSequence.cs(242,24): error CS1501: No overload for method 'this' takes 2 arguments
Graphics/HackySpriteSequence.cs(259,16): error CS1501: No overload for method 'this' takes 2 arguments
Graphics/HackySpriteSequence.cs(272,15): error CS1501: No overload for method 'this' takes 2 arguments
Graphics/HackySpriteSequence.cs(285,18): error CS1729: 'SpriteWithSecondaryData' does not contain a constructor that takes 4 arguments

Based on this I'd guess these are the relevant lines to commit e91be6b: 242, 259, 272 and 285.

Any fix to this issue will be much appreciated as this is a mighty fine mod :).

Thanks for your time,
Brenton

latest appimage doesnt ask for content

Hello! Following this along with great anticipation, loved Dark Reign!

Tried out the most recent AppImage and it's supposed to ask for the content isn't it? All I get is a black screen with a Quit button currently.

Infiltrator does not work like the original

In the original, the Infiltrator can infiltrate the HQ, Training Facility or Assembly Plant, and select a unit/building plan to steal. Once escaped, he must be returned to the player's HQ for the player to be able to build the unit/building.

Currently he can be disguised and enter enemy buildings, but nothing happens.

Cannot run on Linux: Required engine files not found. Run `make` in the mod directory to fetch and build the required files, then try again.

When I run the command:

./launch-game.sh

after building this mod with make, I receive the error:

Required engine files not found.
Run `make` in the mod directory to fetch and build the required files, then try again.

(Platform is Arch Linux).

At least part of the issue is that building this mod no longer creates an OpenRA.exe file, instead an OpenRA.dll file is generated in engine/bin. But I have found that modifying the launch-game.sh file so that it uses OpenRA.dll instead of OpenRA.exe does not fix this error.

Terrain tile masking/blending

Dark Reign had a great system for creating smooth transitions between terrain tile types. It was explained in the very detailed Tactics Engine manual included with the game. Here is the relevant section:

TE manual - tilesets

And here's the end result:

tile blending

The gist of it is that there are 4 values stored for each tile; one for each corner. In the level editor, the tile paint brush is offset by half a tile size, so the user is painting at the corner of 4 tiles instead of the middle of one tile.

The terrain engine then devises edge and corner masks (greyscale images) which are used to blend between the two different tile types. The end result looks really natural.

OpenRA currently only supports one value per tile, but apparently we might be able to add a field defining a custom tile data chunk size(? Unsure of terminology).

Currently DR looks very blocky without this tile blending:

no tile blending

This missing feature has elicited a few inquiries recently, so I thought I should write it up.

Freighters can return resources to the wrong building type

In DR, freighters can harvest taelon and return it to a power generator, or harvest water and return it to a water launch pad.

But currently in the mod, both the power generator and water launch pad are marked as refineries, and freighters can return any resource type to any building.

Build fails on openSUSE Tumbleweed: error CS0219 the variable 'lastEntry' is assigned but its value is never used

Hi,

On openSUSE Tumbleweed with Mono 5.10.1.47 and Lua5.1 5.1.5 I get this make output:

make[1]: Entering directory '/data/GitHub/others/DarkReign/engine'
Fetching StyleCopPlus from NuGet
Fetching StyleCop files from NuGet
Fetching ICSharpCode.SharpZipLib from NuGet
Fetching MaxMind.Db from NuGet
Fetching SharpFont from NuGet
Fetching NUnit from NuGet
Fetching NUnit.Console from NuGet
Fetching Open.Nat from NuGet
Fetching FuzzyLogicLibrary from NuGet.
Fetching SDL2-CS from GitHub.
Fetching OpenAL-CS from GitHub.
Fetching Eluant from GitHub.
Fetching rix0rrr.BeaconLib from NuGet.
Updating GeoIP country database from MaxMind.
Detected Lua 5.1 library at /usr/lib64/liblua5.1.so.5.1
Eluant.dll.config has been created successfully.
CSC fixheader.exe
CSC OpenRA.Game.exe
CSC OpenRA.Platforms.Default.dll
CSC mods/common/OpenRA.Mods.Common.dll
CSC mods/common/OpenRA.Mods.Cnc.dll
CSC mods/d2k/OpenRA.Mods.D2k.dll
CSC OpenRA.Utility.exe
CSC OpenRA.Server.exe
make[1]: Leaving directory '/data/GitHub/others/DarkReign/engine'
FileFormats/ScnFile.cs(47,11): error CS0219: The variable 'lastEntry' is assigned but its value is never used
UtilityCommands/ImportDrMapCommand.cs(210,11): error CS0219: The variable 'divisor' is assigned but its value is never used
SpriteLoaders/DrTilLoader.cs(22,13): error CS0169: The field 'DrTilLoader.header' is never used

OpenRA itself builds fine on this platform, as does the uRA mod, so this issue is unique to this particular mod. I would love to try this mod out, however, so please help me.

Thanks for your time,
Brenton

Resources (Water, Taelon) don't work like the original

Resources in the original had credits, water, and taelon.

resources
resources2
drcredits

Water and Taelon have their own bars, and when the player fills up either bar, they get ~3000 credits. (EDIT: This is incorrect, see comments below)

In the mod, we just deposit these resources directly as credits in typical RA fashion.

This is a pretty important feature to DR, next to building with construction rigs: #1

Exception of type 'System.Reflection.ReflectionTypeLoadException' was thrown

Hi,

I'm getting the runtime error on NixOS:

Loading mod: dr
Exception of type `System.Reflection.ReflectionTypeLoadException`: Exception of type 'System.Reflection.ReflectionTypeLoadException' was thrown.
Could not resolve type with token 010000a5 from typeref (expected class 'OpenRA.Traits.ResourceTypeInfo' in assembly 'OpenRA.Game, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null')
Could not resolve type with token 010000a5 from typeref (expected class 'OpenRA.Traits.ResourceTypeInfo' in assembly 'OpenRA.Game, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null')
Could not resolve type with token 010001dc from typeref (expected class 'OpenRA.Activities.CompositeActivity' in assembly 'OpenRA.Game, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null')
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
Could not load file or assembly 'System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
  at (wrapper managed-to-native) System.Reflection.Assembly.GetTypes(System.Reflection.Assembly,bool)
  at System.Reflection.Assembly.GetTypes () [0x00000] in <6649516e5b3542319fb262b421af0adb>:0 
  at OpenRA.Exts.GetNamespaces (System.Reflection.Assembly a) [0x00000] in <db7dc50faa404dd589eb5eb785af649d>:0 
  at OpenRA.ObjectCreator+<>c.<.ctor>b__4_0 (System.Reflection.Assembly asm) [0x0000d] in <db7dc50faa404dd589eb5eb785af649d>:0 
  at System.Linq.Enumerable+SelectManySingleSelectorIterator`2[TSource,TResult].ToArray () [0x00028] in <35ad2ebb203f4577b22a9d30eca3ec1f>:0 
  at System.Linq.Enumerable.ToArray[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0001f] in <35ad2ebb203f4577b22a9d30eca3ec1f>:0 
  at OpenRA.ObjectCreator..ctor (OpenRA.Manifest manifest, OpenRA.InstalledMods mods) [0x0010e] in <db7dc50faa404dd589eb5eb785af649d>:0 
  at OpenRA.ModData..ctor (OpenRA.Manifest mod, OpenRA.InstalledMods mods, System.Boolean useLoadScreen) [0x00029] in <db7dc50faa404dd589eb5eb785af649d>:0 
  at OpenRA.Game.InitializeMod (System.String mod, OpenRA.Arguments args) [0x0015a] in <db7dc50faa404dd589eb5eb785af649d>:0 
  at OpenRA.Game.Initialize (OpenRA.Arguments args) [0x00480] in <db7dc50faa404dd589eb5eb785af649d>:0 
  at OpenRA.Game.InitializeAndRun (System.String[] args) [0x00006] in <db7dc50faa404dd589eb5eb785af649d>:0 
  at OpenRA.Program.Main (System.String[] args) [0x00044] in <db7dc50faa404dd589eb5eb785af649d>:0 

AL lib: FreeContext: (0x2f534d0) Deleting 32 Source(s)

Thanks for your time

ProductionIcon tooltip crashes the game when player has low power

An exception is thrown in ProductionTooltipLogic at line 121. tooltipIcon.ProductionQueue is null.

DR has a BuildSelectPaletteWidget and accompanying logic for picking buildings and placing them on the map. This logic doesn't populate the ProductionIcon's ProductionQueue. This is because the ProductionQueue is on the self-constructing building itself, which hasn't been created yet.

System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.
  Source=OpenRA.Mods.Common
  StackTrace:
   at OpenRA.Mods.Common.Widgets.Logic.ProductionTooltipLogic.<>c__DisplayClassd.<.ctor>b__2() in d:\Development\DarkReign\engine\OpenRA.Mods.Common\Widgets\Logic\Ingame\ProductionTooltipLogic.cs:line 121
   at OpenRA.Mods.Common.Widgets.TooltipContainerWidget.Draw() in d:\Development\DarkReign\engine\OpenRA.Mods.Common\Widgets\TooltipContainerWidget.cs:line 47
   at OpenRA.Widgets.Widget.DrawOuter() in D:\Development\DarkReign\engine\OpenRA.Game\Widgets\Widget.cs:line 457
   at OpenRA.Widgets.Widget.DrawOuter() in D:\Development\DarkReign\engine\OpenRA.Game\Widgets\Widget.cs:line 459
   at OpenRA.Widgets.Widget.DrawOuter() in D:\Development\DarkReign\engine\OpenRA.Game\Widgets\Widget.cs:line 459
   at OpenRA.Widgets.Ui.Draw() in D:\Development\DarkReign\engine\OpenRA.Game\Widgets\Widget.cs:line 92
   at OpenRA.Game.RenderTick() in D:\Development\DarkReign\engine\OpenRA.Game\Game.cs:line 672
   at OpenRA.Game.Loop() in D:\Development\DarkReign\engine\OpenRA.Game\Game.cs:line 792
   at OpenRA.Game.Run() in D:\Development\DarkReign\engine\OpenRA.Game\Game.cs:line 810
   at OpenRA.Game.InitializeAndRun(String[] args) in D:\Development\DarkReign\engine\OpenRA.Game\Game.cs:line 256
   at OpenRA.Program.Main(String[] args) in D:\Development\DarkReign\engine\OpenRA.Game\Support\Program.cs:line 31

Artillery shell is missing extra explosion sprites

The artillery shells only have one explosion sprite eofarex0/eoiarex0, but it has additional explosion effects as defined in Animate.txt:

;HellStorm Artillery
DefineExplosionType(eofarex0_explosion)
{
  PlayAnimation(0 1 0 eofarex1_animation opaque)
  PlayAnimation(0 1 0 eofarex0_animation translucentB1)
  PlayAnimation(0 3 3 lite2_animation light)
}

;Scarab
DefineExplosionType(eoiarex0_explosion)
{
  PlayAnimation(0 3 3 eoiarex0_animation opaque)
  PlayAnimation(0 3 3 eoiarex1_animation opaque)
  PlayAnimation(15 3 3 eoiarex2_animation opaque)
}

Mod will not build: GeoLite2-Country.mmdb.gz cannot be downloaded anymore

Hi,

Whenever I built this mod I get the error:

Fetching OpenAL-CS from GitHub.
Fetching Eluant from GitHub.
Fetching rix0rrr.BeaconLib from NuGet.
  Restore completed in 407.51 ms for /data/AUR/openra-dr-git/src/DarkReign/engine/OpenRA.Mods.Common/OpenRA.Mods.Common.csproj.
  Restore completed in 4.33 ms for /data/AUR/openra-dr-git/src/DarkReign/engine/OpenRA.PostProcess/OpenRA.PostProcess.csproj.
  Restore completed in 4.84 ms for /data/AUR/openra-dr-git/src/DarkReign/engine/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj.
  Restore completed in 3.42 ms for /data/AUR/openra-dr-git/src/DarkReign/engine/OpenRA.Utility/OpenRA.Utility.csproj.
  Restore completed in 4.99 ms for /data/AUR/openra-dr-git/src/DarkReign/engine/OpenRA.Platforms.Default/OpenRA.Platforms.Default.csproj.
  Restore completed in 4.79 ms for /data/AUR/openra-dr-git/src/DarkReign/engine/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj.
  Restore completed in 2.28 ms for /data/AUR/openra-dr-git/src/DarkReign/engine/OpenRA.Game/OpenRA.Game.csproj.
  Restore completed in 3.3 ms for /data/AUR/openra-dr-git/src/DarkReign/engine/OpenRA.Server/OpenRA.Server.csproj.
  Restore completed in 4.5 ms for /data/AUR/openra-dr-git/src/DarkReign/engine/OpenRA.Test/OpenRA.Test.csproj.
Updating GeoIP country database from MaxMind.
make[1]: *** [Makefile:194: geoip-dependencies] Error 6
make[1]: Leaving directory '/data/AUR/openra-dr-git/src/DarkReign/engine'
make: *** [Makefile:106: engine-dependencies] Error 2

Thanks for your time

Shooting in the 1 o'clock direction causes a crash in DefaultSpriteSequence

When shooting in the 1 o'clock direction (or north north-east), an exception occurs due to a large facing value. This only seems to happen for sprites with 24 facings and multiple animation frames.

firingangle

Culprit sequences are: eolaspr2.spr, eorgnpr0.spr, eorgnpr1.spr. The default laser weapon used by the base troop Raider (FG) or Guardian (Imperium) will do it.

Currently I'm addressing this with a copy of DefaultSpriteSequence: HackySpriteSequence. Line 345 contains a hack to always choose a valid facing.

// TODO: DR hack!
int newIndex = start + i;
if (newIndex >= sprites.Length)
	newIndex = sprites.Length - 1;

To reproduce, place a breakpoint in the block above (line 345, HackySpriteSequence.cs), start the game, go to Single Player, Missions, Mission Test, select a Raider, and force fire in the 1 o'clock direction.

CRASH in last playtest (grafic.log)

System.NotSupportedException: Предпринята попытка загрузить сборку из сетевого ресурса, что в предыдущих версиях .NET Framework могло привести к помещению сборки в "песочницу". Этот выпуск .NET Framework не включает политику CAS по умолчанию, поэтому данная загрузка может быть опасной. Если эта нагрузка не предназначена для изоляции сборки, включите переключатель loadFromRemoteSources. Дополнительные сведения см. на странице http://go.microsoft.com/fwlink/?LinkId=155569.
в System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
в System.Reflection.Assembly.LoadFile(String path)
в OpenRA.Game.Initialize(Arguments args)
System.NotSupportedException: Предпринята попытка загрузить сборку из сетевого ресурса, что в предыдущих версиях .NET Framework могло привести к помещению сборки в "песочницу". Этот выпуск .NET Framework не включает политику CAS по умолчанию, поэтому данная загрузка может быть опасной. Если эта нагрузка не предназначена для изоляции сборки, включите переключатель loadFromRemoteSources. Дополнительные сведения см. на странице http://go.microsoft.com/fwlink/?LinkId=155569.
в System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
в System.Reflection.Assembly.LoadFile(String path)
в OpenRA.Game.Initialize(Arguments args)

DarkReign commit 237 AppImage crashes on start up: Assembly `dr|OpenRA.Mods.Dr.dll` not found.

Hi,

On Fedora 28 I just built DarkReign commit 237 (c2f0c2d) and on start up the AppImage crashes, with the error message:

Loading mod: dr
Exception of type `System.IO.FileNotFoundException`: Assembly `dr|OpenRA.Mods.Dr.dll` not found.
  at OpenRA.ObjectCreator..ctor (OpenRA.Manifest manifest, OpenRA.InstalledMods mods) [0x0008d] in <8385b49bf51c4a288ea744058c0fa77b>:0 
  at OpenRA.ModData..ctor (OpenRA.Manifest mod, OpenRA.InstalledMods mods, System.Boolean useLoadScreen) [0x0002a] in <8385b49bf51c4a288ea744058c0fa77b>:0 
  at OpenRA.Game.InitializeMod (System.String mod, OpenRA.Arguments args) [0x00167] in <8385b49bf51c4a288ea744058c0fa77b>:0 
  at OpenRA.Game.Initialize (OpenRA.Arguments args) [0x004c8] in <8385b49bf51c4a288ea744058c0fa77b>:0 
  at OpenRA.Game.InitializeAndRun (System.String[] args) [0x00007] in <8385b49bf51c4a288ea744058c0fa77b>:0 
  at OpenRA.Program.Main (System.String[] args) [0x0004f] in <8385b49bf51c4a288ea744058c0fa77b>:0 

AL lib: FreeContext: (0x5581ae97f3c0) Deleting 32 Source(s)

the full exception log can be viewed at https://gist.github.com/7976e8034d2734b6ba6a4bf3ad58302e. All the other logs (e.g. perf.log) are empty.

EDIT: What is surprising is that mods/dr/OpenRA.mods.Dr.dll does, in fact, exist in the cloned git repo.

My procedure for building this AppImage was running:

make clean
make
cd packaging/linux
./buildpackage.sh $(git rev-list --branches master --count) $HOME/Applications

Thanks for your time,
Brenton

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.