Code Monkey home page Code Monkey logo

tankdriver's People

Contributors

fornever avatar rexim avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

skyforce aman7

tankdriver's Issues

Unknown ToolsVersion '14.0' error when opening project in MonoDevelop on NixOS

Environment

  • OS: NixOS 16.03

Steps to reproduce

  • Go the dev environment with nix-shell at the root of the project
  • Start MonoDevelop from there
  • Open the projects solution in MonoDevelop

Observed

Error message dialog with the following text "Error while trying to load the project '/home/rexim/Programming/ForNeVeR/TankDriver/TankDriver.Tests/TankDriver.Tests.csproj': Unknown ToolsVersion '14.0'"

Expected

Project opens clearly without any errors

Add shooting

On mouse click the tank should shoot a bullet object that dies when goes outside of the screen. Bullet direction should correspond to the tank turret direction at the moment of fire.

Everything else (like bullet interaction with other objects) is the scope of other issues that have to be
created.

Warning "The private field is assigned but its value is never used"

Description

Everytime I compile TankDriver on my NixOS setup I get

/home/rexim/Programming/ForNeVeR/TankDriver/TankDriver.App/Game.cs(42,42): Warning CS0414: The private field `TankDriver.Game._graphics' is assigned but its value is never used (CS0414) (TankDriver.App)

in Game.cs

You can see that warning on Travis CI
But there are no any warnings on AppVeyor

Environment

  • NixOS 16.03

Steps to reproduce

Follow NixOS build instructions in README

Observed

The warning message in the compilation log (see Description)

Expected

Compilation without any warnings.

Add run instructions

Currently it's like

$ cd TankDriver.App/bin/Debug
$ ./TankDriver.App.exe # or mono ./TankDriver.App.exe

Linux Build

Just to keep track of this shit and collect useful links

Add game icon

  • add the icon (#32)
  • use the icon for the executable file
  • use the icon for the game window

Images are loaded from the current directory only

Try the following:

$ cd C:\
$ D:\TankDriver\TankDriver.App\bin\Debug\TankDriver.App.exe

The game will fail to load the textures and crash. We need to configure texture manager to load the resources from the same directory as our binary.

Caching on CI servers

Probably we want to preserve the cache of downloaded NuGet packages on both Travis and Appveyor.

NixOS test issues

Currently the tests fail on NixOS with mono 4.0.1:

$ mono ../../../packages/xunit.runner.console.2.1.0/tools/xunit.console.exe ./TankDriver.Tests.dll
xUnit.net Console Runner (64-bit .NET 4.0.30319.17020)
System.TypeLoadException: Could not load type 'Xunit.Sdk.XunitTestFrameworkDiscoverer, xunit.execution.desktop, Version=2.1.0.3179, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c'.

It seems like we hit xunit#158 that was fixed somewhere around mono 4.2. Unstable NixOS channel have mono 4.4 already, but the stable channel doesn't.

What options do we have? We wanna run these tests without problems. Rely our build on mono44 and recommend the users to use unstable channel? Could it be done in a user-friendly manner?

Shooting cooldown

Tank shouldn't be able to shoot too many bullets at once. Probably no more than 1 bullet per second or something like that. Add a cooldown constant to the tank model and follow that constant (i.e. don't let him to shoot if the the turret haven't cooled down yet).

Add enemies

Probably let's start from the static block enemies with some fixed amount of HP.

Game engine planning

We need to create plans for a big picture of the game. Currently we have no vision of that, and it creates a problems for everyone.

Windows: show console window only in debug mode

Currently I've enabled the console window in #16 because we want to be able to debug the game started from terminal. In Windows there's no easy way to control whether I want or don't want to enable the console window. The most obvious way is to compile the application for a console subsystem (see TankDriver.App.csproj:9). This have an undesirable effect: the game will now show the console window every time anybody is starting it. And we don't want to scare ordinary gamers with out black console windows. So we'll need a way to disable console in release mode.

We can recompile application for Windows subsystem, but

  • there's no easy way to switch compilation mode depending on build configuration;
  • NLog fails if it cannot set or encoding color for the console (and it fails to set it without the actual console); (fixed with 8ea8f5c)
  • I want to be able to control console with command line parameters or even by simply starting the application from console.

So, I think that we need to provide a small Windows-specific piece of code that will detect if an application was launched with specific command line arguments and show (or hide?) console based on that.

See something like that SO answer as a reference implementation.

Add logging

Enable and configure NLog in the project.

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.