abc013 / warriorssnuggery Goto Github PK
View Code? Open in Web Editor NEWA customisable, singleplayer 2D-top-view kind-of-shooter in pixelart.
License: MIT License
A customisable, singleplayer 2D-top-view kind-of-shooter in pixelart.
License: MIT License
Also when actors are hovering over it, it should spawn special wave particles.
Currently, the menus are pretty compact and do not use the extra space they could have.
Also, margins and image scales are not lined up perfectly and the keyboard settings menu would need a redesign asap.
I am currently looking for ideas.
publish_linux_x64$ ./WarriorsSnuggery
Loading...Ouch! An error occurred.
For more details, please check out the logs (located in 'WarriorsSnuggery/logs/').
Please report the issue to https://github.com/abc013/WarriorsSnuggery or contact abc013.
Thank you!
Unhandled exception. System.IO.FileNotFoundException: Unable to find the specified file.
at System.Drawing.Text.PrivateFontCollection.AddFontFile(String filename)
at WarriorsSnuggery.Graphics.FontManager.Load() in C:\Users\Meredith McKay\source\repos\WarriorsSnuggery\WarriorsSnuggery.Game\Graphics\Font\FontManager.cs:line 19
at WarriorsSnuggery.Window.OnLoad() in C:\Users\Meredith McKay\source\repos\WarriorsSnuggery\WarriorsSnuggery.Game\Window.cs:line 137
at OpenTK.Windowing.Desktop.GameWindow.Run()
at WarriorsSnuggery.Program.run(String[] args) in C:\Users\Meredith McKay\source\repos\WarriorsSnuggery\WarriorsSnuggery.Game\Program.cs:line 101
at WarriorsSnuggery.Program.Main(String[] args) in C:\Users\Meredith McKay\source\repos\WarriorsSnuggery\WarriorsSnuggery.Game\Program.cs:line 38
Aborted (core dumped)
Conditions:
x0
and y0
is 0
tDeltaX
and tDeltaY
is infinity
WarriorsSnuggery/WarriorsSnuggery/Physics/RayPhysics.cs
Lines 280 to 289 in 64a0089
Game crashes, when trying to start. The playtest is specified for a special audio software, which I would like to be undone ^.^.'. I tried it with every selectable audio-ouput on my device, getting the same error. Version 1.4 still works for me, so one of the new mechanics seems to make the difference here.
exception log:
openal32.dll
System.DllNotFoundException: openal32.dll
bei OpenTK.Audio.AudioContext.CreateContext(String device, Int32 freq, Int32 refresh, Boolean sync, Boolean enableEfx, MaxAuxiliarySends efxAuxiliarySends)
bei OpenTK.Audio.AudioContext..ctor(String device)
bei WarriorsSnuggery.Audio.AudioDevice..ctor()
bei WarriorsSnuggery.AudioController.Load()
bei WarriorsSnuggery.Window.OnLoad(EventArgs e)
bei OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second)
bei WarriorsSnuggery.Program.run()
bei WarriorsSnuggery.Program.Main()
debug log:
SHADER 1 locations: 0, 1, 2, 3;
SHADER 2 locations: 0, 1, 3, 4;
SHADER 3 locations: 0, 1, 3, 4;
SHADER 4 locations: 0, 1, 3, 4;
SHADER 4 shadowloc: 5
performance log:
61ms <- Configuring GL
133ms <- Loading Fonts
Even after installing the required software the game crashes - this time without exception nor entry in its log.
debug log:
SHADER 1 locations: 0, 1, 2, 3;
SHADER 2 locations: 0, 1, 3, 4;
SHADER 3 locations: 0, 1, 3, 4;
SHADER 4 locations: 0, 1, 3, 4;
SHADER 4 shadowloc: 5
performance log:
55ms <- Configuring GL
122ms <- Loading Fonts
585ms <- Loading Sound
This is due to the changes in the rendering system, which is discarding, allocating and saving huge amounts of data per render. This whole thing is happening here:
WarriorsSnuggery/WarriorsSnuggery/Graphics/Objects/BatchRenderable.cs
Lines 83 to 105 in 88952e2
Calculated
is the reference that is causing this issue.Add an attribute called Required
or something similar to rules. If the rule was not declared, then crash instantly with a useful exception.
Currently, the index of the documentation only shows the major headers. It would be nice to also see the other headers, which would improve general oversight of the documentation.
Marshal.Copy(data.Scan0 + scanline * stride, scan, 0, stride);
where scanline
is 7, width
and height
is 8, stride
is 128 and scan
is a float[128]
.
So everything should be fine??
Right now, the algorithm to create the texture sheets is very unpolished and leaves large gaps of unused pixel data. This can be increased by smarter sorting of the textures, perhaps splitting the whole buffer into smaller pieces (e.g. 24x24px pieces and lower) and filling it up by taking the smallest available piece.
The savegame system is still a whole mess. For example, spells are not saved, weapons and states of some traits.
This could be improved by adding a save
and load
function for traits and use them to store relevant information.
Weapons would become a new section with standart information.
Relations between actors should be completed via the currently actorID
s stored in actors. IDs used in map saves should be replaced by those.
split from #1.
A few sketches of how the generation should look like. The debug output should also be almost the same.
Pathgenerator
Nodes are placed on the lowest values of the noise texture. One per side and optional ones in the center or at key points such as villages, entries and exits
Terraingenerator
A noise texture and a value range is given to select the area where the terrain should be generated.
Structuregenerator
A noise texture and a value range is given to determine areas where structure can be generated. Same with towns.
Noise textures can be selected via extra numbers, so multiple can exist and selected. They are always normalized from 0-1.
In debug, the noise texture is now shown as greyscale background, while the selected tiles are displayed in color.
Describe the feature you'd like
Add multiplayer support using servers and a architecture that allows to join midgame. Servers are included in the game itself.
Describe alternatives you've considered
If midgame-joining is not possible, use lobbies instead.
Additional context
See this WIP branch.
My current proposal is that commands are sent by the players to the server. The server gathers all commands in each tick, processes them and returns the new world state (more exact: the difference to the last one). This is also used if a new client wants to join: just send the current world state.
Downsides
It will make the code a lot more complex.
Rendering, Animation ticks and ticks need to be separated.
There are still a few questions open:
Workplan as follows:
The categories are:
After 3D-collisions are now a thing, it gets harder to target actors. A targeting system should be added to visualize the aimed target and to adjust the height of the target to make it easier to hit something again.
E.g. giving values from 1.0 to 0.0, between every number a distance like 1024.
This would look like this:
Falloff=1.0, 0.9, 0.1, 0.4, 0,3, 0.0
And falloff values ingame (with linear interpolation):
Cell distance | 0 | 512 | 1024 | 1536 | 2048 | 3072 | 4096 | 5120 | 6144 |
---|---|---|---|---|---|---|---|---|---|
Damage Multiplier | 1.0 | 0.95 | 0.9 | 0.5 | 0.1 | 0.4 | 0.3 | 0.0 | 0.0 |
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.