Code Monkey home page Code Monkey logo

flatredball's Introduction

FlatRedBall

Join the chat Website Twitter Activity

The FlatRedBall Game Engine is designed to boost your productivity as a game developer, with a particular focus on building 2D games of any genre. It provides a powerful editor to help you organize your projects. At runtime, the FlatRedBall engine provides efficiency, stability, and features which have been refined for over two decades.

image

The FlatRedBall Engine utilizes the C# programming language, operating on the full version of .NET for uncompromised access to modern language features and all NuGet packages. Games can be launched effortlessly via the FlatRedBall Editor or directly from Visual Studio (or any other IDE), streamlining the development process.

FlatRedBall is mature and continually improving. Reported issues are resolved or commented soon after they are created. We actively watch PRs and keep them from piling up. Commits are being made almost daily - check the commit history to see the activity for yourself.

Alt

Star Velocity

Sparkline

Downloading FlatRedBall

For instructions on how to download FlatRedBall (both prebuilt and how to build from source), see https://flatredball.com/download/

Direct link to FlatRedBall Editor: https://files.flatredball.com/content/FrbXnaTemplates/DailyBuild/FRBDK.zip

What kind of Features does FlatRedBall Offer?

Too many to list here! If you want to see a list with images and animations, check out the Features Page: https://docs.flatredball.com/flatredball/flatredball-features

Questions? Problems?

The fastest way to get help is to ask in our discord chat: https://discord.gg/tG5RBgw

If you prefer, you can also file issues on Github: https://github.com/vchelaru/FlatRedBall/issues

Of course, FlatRedBall has the best documentation: https://docs.flatredball.com/

FlatRedBall Games

FlatRedBall has been used to build dozens of commercial games. Here are some of our favorites:

The Incredible Baron

https://store.steampowered.com/app/441510/The_Incredible_Baron/

Battlecrypt Bombers

https://store.steampowered.com/app/2188930/BattleCrypt_Bombers/

WeeRPG

https://store.steampowered.com/app/1586330/WeeRPG/

Deadvivors

https://enxebregames.com/

Super Refresh Men (iOS and Android)

https://www.youtube.com/watch?v=Irn64qHmakA&t=338s&ab_channel=Techzamazing

Masteroid

https://store.steampowered.com/app/1148320/Masteroid/

KosmoSquad

https://store.steampowered.com/app/1448070/KosmoSquad/

King Randall's Party

https://store.steampowered.com/app/921450/King_Randalls_Party/

Champions of Anteria (Gum UI only)

https://store.steampowered.com/app/374520/Champions_of_Anteria/

A.R.E.S.: Extinction Agenda EX

https://store.steampowered.com/app/315340/ARES_Extinction_Agenda_EX/

Fusion: Sentient (Windows Phone 7)

https://www.microsoft.com/en-us/p/fusion-sentient/9wzdncrfhwd3?activetab=pivot:overviewtab#

flatredball's People

Contributors

arcnor avatar aristurtledev avatar bicheichane avatar cabrill avatar coldacid avatar dependabot[bot] avatar devinguthrie avatar dubhlaidh avatar gorillaone avatar jtuttle avatar kainazzzo avatar kalldrexx avatar kermittt avatar lucasharskamp avatar mfigueirido avatar patridge avatar profexorgeek avatar scott-aegis avatar stitch1280 avatar thraka avatar treesgobark avatar vchelaru avatar zdman2022 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  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  avatar  avatar  avatar  avatar  avatar  avatar

flatredball's Issues

Create StackPanel visual in Gum

  • Needs StackPanelBehavior
  • Make sure it generates code correctly
  • Default vertical orientation, default HeightUnits of DependsOnChildren

Render targets should consider render scale

Render target sprites attached to a game sprite do not consider the render scale, causing a parallax effect due to bad positions:

200% scale (incorrect)
wee-fog-of-war1

100% scale (expected behavior)
wee-fog-of-war2

Create new Toast object

  • Be part of the DefaultForms components
  • Codegen a Toast object with behaviors
  • Allow creating new Toast()

Create ActivityIndicator Default Component

ActivityIndicators have some kind of animation playing, so we probably need to build an animation in Gum, and then have a bool property to control whether it's playing. Look at the XamarinForms ActivityIndicator syntax and copy that:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/activityindicator#:~:text=The%20Xamarin.Forms%20ActivityIndicator%20control%20displays%20an%20animation%20to,ProgressBar%2C%20the%20ActivityIndicator%20gives%20no%20indication%20of%20progress.

Build error

Hi!
How to build FlatRedBall.ContentXna4 solution if Microsoft.Xna.GameStudio package is not compatible with Microsoft Windows [Version 10.0.19041.630]?

Creation of render targets in Glue should be documented

I'm implementing a "fog of war" system in my game. I want white circles (where players are located) to be subtracted from a dark background and then overlaid on my game to obscure areas outside of a vision circle. This requires using a render target to perform the subtraction operation before overlaying it as a sprite.

I know that this is possible in code but, per our discussion, it's also possible in Glue but undocumented.

Documentation of this feature should exist.

Unable to build TiledPluginCore on NetStandard branch

As of commit 27da7c8, I was getting a build error when building the solution of Glue with All.sln from source.

Error    CS0579    Duplicate 'global::System.Runtime.Versioning.TargetFrameworkAttribute' attribute    TiledPluginCore    C:\dev\FlatRedBall\FRBDK\Glue\TileGraphicsPlugin\TileGraphicsPlugin\obj\x86\Debug\netcoreapp3.0.NETCoreApp,Version=v3.0.AssemblyAttributes.cs    4    Active

In chat, it was thought that I was missing the .NET Core version 3.0.1. I ran the installer and it said it was already there, so I tried repairing the install without any luck. Not sure if it's one that even shows up in the dotnet list, but listing all my installed .NET Core SDKs doesn't show that specific version.

> dotnet --list-sdks
3.1.301 [C:\Program Files\dotnet\sdk]
3.1.407 [C:\Program Files\dotnet\sdk]
5.0.100 [C:\Program Files\dotnet\sdk]
5.0.103 [C:\Program Files\dotnet\sdk]
5.0.104 [C:\Program Files\dotnet\sdk]
5.0.201 [C:\Program Files\dotnet\sdk]

Workaround

It remains to be seen if there are other issues caused by this workaround, but I was able to get the project (and full solution) to build after adding this line to the TilePluginCore.csproj file.

<PropertyGroup>
  <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  <GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute><!-- added this -->
  <Platforms>AnyCPU;x86</Platforms>
</PropertyGroup>

Polygon X and Y values from Tiled maps are ignored in ShapeCollections

As shown in the screenshot, the circle and rectangle are positioned correctly. The 2 polygon (which is a jagged, open polygon) are copies of each other, but one is offset 100 pixels to the right. However, despite being offset, the two overlap perfectly at runtime.

image

Something must not be considering the X and Y values of polygons when loading the .tmx and creating ShapeCollections.

TextBox cursor should properly react to whitespace

Repro steps:

  1. Add a Gum object containing a Forms text box to a Gum screen
  2. Build and run the game screen
  3. Focus the text box and enter several space characters
  4. Enter some other characters
  5. Note that the cursor and text box do not properly render whitespace

Expected behavior:
Entering whitespace into a textbox should preview correctly with the cursor being offset by the spaces.

Actual behavior:
The cursor and spacing renders incorrectly.

Gif:
gum-whitespace-issue

I filed this in the FRB repo and not the Gum repo because this is a runtime issue and not an issue with the Gum application.

Glue should not crash when adding objects

I don't have a lot of information on why this happens. Sometimes when I create a new entity type Glue crashes when I try to add objects to it. The entities that crash seem to:

  1. Inherit from a base type
  2. Have at least one object that is set by derived

Gif:
glue-asplode

Full Error:

---------------------------

---------------------------
A plugin has had an error.
Shutting down the plugin Global ContentManager Helper Plugin version 1.0 at file location
C:/Users/justi/Documents/projects/FlatRedBall/FRBDK/Glue/Glue/bin/x86/Debug/netcoreapp3.0/Plugins\OfficialPlugins/OfficialPluginsCore.dll

Additional information:

System.NullReferenceException: Object reference not set to an instance of an object.

   at FlatRedBall.Glue.Plugins.ExportedImplementations.CommandInterfaces.DialogCommands.CreateAndShowAddNamedObjectWindow(AddObjectViewModel& addObjectViewModel) in C:\Users\justi\Documents\projects\FlatRedBall\FRBDK\Glue\Glue\Plugins\ExportedImplementations\CommandInterfaces\DialogCommands.cs:line 68

   at FlatRedBall.Glue.Plugins.ExportedImplementations.CommandInterfaces.DialogCommands.ShowAddNewObjectDialog(AddObjectViewModel addObjectViewModel) in C:\Users\justi\Documents\projects\FlatRedBall\FRBDK\Glue\Glue\Plugins\ExportedImplementations\CommandInterfaces\DialogCommands.cs:line 34

   at Glue.MainGlueWindow.addObjectToolStripMenuItem_Click(Object sender, EventArgs e) in C:\Users\justi\Documents\projects\FlatRedBall\FRBDK\Glue\Glue\MainGlueWindow.cs:line 715

   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)

   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)

   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)

   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)

   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)

   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)

   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)

   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)

   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

   at System.Windows.Forms.Control.WndProc(Message& m)

   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)

   at System.Windows.Forms.ToolStrip.WndProc(Message& m)

   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)

   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
---------------------------
OK   
---------------------------

NewProjectCreator: unhandled exception after new project created

Spun up a new project from latest commit (f3f9ae6). It went through the download appearing to be happy and then jumped back into VS2019 with this exception.

image

System.InvalidOperationException
HResult=0x80131509
Message=DialogResult can be set only after Window is created and shown as dialog.
Source=PresentationFramework
StackTrace:
at System.Windows.Window.set_DialogResult(Nullable`1 value)
at Npc.MainWindow.d__8.MoveNext() in C:\dev\FlatRedBall\FRBDK\NewProjectCreator\NpcWpf\MainWindow.xaml.cs:line 110
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at Npc.MainWindow.d__7.MoveNext() in C:\dev\FlatRedBall\FRBDK\NewProjectCreator\NpcWpf\MainWindow.xaml.cs:line 85

This exception was originally thrown at this call stack:
[External Code]
Npc.MainWindow.BeginMakingProject() in MainWindow.xaml.cs
[External Code]
Npc.MainWindow.HandleMakeMyProjectClicked(object, System.Windows.RoutedEventArgs) in MainWindow.xaml.cs

Move up/down should work when there are only two layers

You can't reorder layers using alt + up/down or by right clicking and choosing move up/down when there are only two layers. Move to top works.

Repro:

  1. Create two layers in a screen
  2. Choose the last layer in the list and press alt+up
  3. Layers do not reorder

TileAdventure Glue Project Doesn't Build

Hi,

I just downloaded/installed FRB and all the pre-requisites using the latest installer (available today). When I create a new TileAdventure project and build it, I see these errors:

Entities\DialogDisplay.Generated.cs(30,17): error CS0246: The type or namespace name 'LayeredTileMap' could not be found (are you missing a using directive or an assembly reference?) [D:\temp\TileAdventurez\TileAdventurez\TileAdventurez\TileAdventurez.csproj]
Screens\GameScreen.Generated.cs(26,17): error CS0246: The type or namespace name 'TileShapeCollection' could not be found (are you missing a using directive or an assembly reference?) [D:\temp\TileAdventurez\TileAdventurez\TileAdventurez\TileAdventurez.csproj]

This is a stock project, without any changes. (I had to name it TileAdventurez because when I named it TileAdventure, I get an exception about copying; something like source and destination names are the same.

The result is the same whether I build in Glue or VS2015.

[Docs] Typo in circle collision tutorial

Thanks for the great tutorials! I used your Circle Collision tutorial while resolving some circle collisions in another language.

There is a not insignificant typo in an example code snippet, however, at the very end of the Circle Move Collision section:

circle2.X += (float)(System.Math.Cos(angle) * distanceToMove);
circle2.Y += (float)(System.Math.Cos(angle) * distanceToMove);

circle2.Y should use sine rather than cosine:

circle2.Y += (float)(System.Math.Sin(angle) * distanceToMove);

Create new project pop-up should have Glue Icon

  1. Launch Glue Version 2021.03.21.638
  2. Click File > New Project

=> Observe Create new project pop-up does not have Glue icon

Expected results: Create new project pop-up should have Glue Icon

image

Glue should generate clearer errors if TMX is not sane

I forgot to create a layer called "Gameplay" in a new map. A null ref exception occurs because the Generated code just expects this layer to exist. Instead, it should throw a clearer exception if the expected layer doesn't exist to give devs a clearer idea of what went wrong:

Here's the generated code passing the results of FindByName which are null:
image

Runtime exception in game from a VisibilityGrid

visibilityGrid is an instance of VisibilityGrid (FlatRedBall.AI.LineOfSight.VisibilityGrid)

When attempting to use its method Activity(), the following exception is thrown:
System.ArithmeticException: 'Function does not accept floating point Not-a-Number values.'

Details attached incl stack trace

Offline documentation

Hello.

Is it possible to browse docs offline? I don't see them shipped with engine, nor option to download them from website or build from source.

Best regard,
Ved

Cant connect to flatredball.com

Is it just me or the site doesn't work at all

I can't acces to the site it just take alot of time then 'this site can’t be reached'
Everything just work well except for flatredball.com

Cancelling new project creation download throws numerous errors

When on slow internet and creating a new project and decided to close the download progress dialog to cancel it. Not sure if it was intended, but it ended up presenting 5 error dialogs and a Notepad file with one of the errors, which seemed a bit excessive.

  1. "Download for the following file has failed..."
  2. "Clean and unzip failed"
  3. Notepad with FRBDKUpdaterImmediateLog.txt and contents from step 1
  4. "Error downloading the file"
  5. "The local .zip file could not be unzipped. Deleting this file. Attempt to create the project again to re-download it."

FRB.Forms should include a virtual keyboard object

Not sure exactly how this should work but some potential requirements:

  • Keyboard should be isolated from other UI such as an input dialog
  • Keyboard should be shareable across UI components that can accept text input
  • Keyboard should be skinnable
  • Keyboard should support basic punctuation used for game input. Suggestion: .,!?-_$@'
  • Keyboard should support moving cursor between characters
  • Keyboard should support space character
  • Keyboard should support backspace
  • Keyboard should support "Complete Input" which returns focus to the UI control

New pathing system should clean up debug visualizations

If you enable debug visualizations for the new top down pathing system, it doesn't clean up the lines causing a crash on screen unload. Repro:

  1. Create a top down entity and node-network TMX
  2. Implement node traversal using new pathing system
  3. Turn on line visualizations
  4. Navigate away from screen while lines are visible
  5. Screen will crash because lines aren't cleaned up

Glue System.Windows.Forms v4.0.0 cannot be found

I have a Windows 10 developer machine, and when I try to run the compiled version of Glue I receive the following error on startup:

System.Windows.Forms.ContextMenu

The error is:

System.TypeLoadException: Could not load type 'System.Windows.Forms.ContextMenu' from assembly 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. 
  at FlatRedBall.Glue.Controls.PluginTab..ctor()
  at Glue.MainGlueWindow.InitializeComponent() in
C:\BuildAgent\work\a22593881c1cbdfe\FlatRedBall\FRBDK\Glue\Glue\MainGlue Window.Designer.cs:line 108
  at Glue.MainGlueWindow..ctor() in
C:\BuildAgent\work\a22593881c1cbdfe\FlatRedBall\FRBDK\Glue\Glue\MainGlueWindow.cs:line 84
  at Glue.Program.Main() in
C:\BuildAgent\work\a22593881c1cbdfe\FlatRedBall\FRBDK\Glue\Glue\Program.cs:line 35

I have the following .NET Framework versions installed, according to DotNetVersionLister:

PS C:\WINDOWS\system32> Get-STDotNetVersion
ComputerName : localhost
>=4.x        : 4.8 or later
v4\Client    : Installed
v4\Full      : Installed
v3.5         : Installed
v3.0         : Installed
v2.0.50727   : Installed
v1.1.4322    : Not installed (no key)
Ping         : True
Error        :

    Script start time: 11/05/2020 12:37:09
    Script end time:   11/05/2020 12:37:09

At this point, I'm not really sure what to do here, what am I missing?

Glue should not choke on Gum File > Save All

When you execute Save All in Gum, Glue will choke on all of the sudden file changes. The tasks remaining window clogs up and it takes long periods of time to churn through the changes.

Error when tunnelling a variable in a contained object

Hi,

I've recently installed FRB for a college (UK) computer science project. I've been completing the tuorial project Beefball to get to grips with Glue and FRB. All has been going well untill now.

While creating the logic for the "ScoreHud" entity, I need to tunnel a variable from the "Team1Score" object. However, when attempting to do this via drag and drop, the variable fails to be created (no error, pop-up etc.), it just doesn't appear in the "Variables" tree.

Attempting the other method in Glue - right click, "Add New Variable", "Tunnelling a vari...", and completing variable setup that way, I receive an error:

"A plugin has had an error. Shutting down the plugin Embedded Plugin version 0.0"

Followed by some "Additional information:" which I shall add at the end of this post as it is quite lengthy.

Can anyone help with this problem? I'm not sure if I'm doing something wrong or if there's a problem with my installation of FRB, XNA Framework, VS, etc.

Thanks,

Fletcher

NOTE: I've not added the additional information as I said I would as the window containing the error message has no ability to copy and paste. If it is needed to provide help, let me know and I'll type it up.

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.