Giter VIP home page Giter VIP logo

zdoom / gzdoom Goto Github PK

View Code? Open in Web Editor NEW
2.3K 2.3K 523.0 154.13 MB

GZDoom is a feature centric port for all Doom engine games, based on ZDoom, adding an OpenGL renderer and powerful scripting capabilities

Home Page: http://zdoom.org

License: GNU General Public License v3.0

CMake 0.42% C 22.15% Objective-C 0.05% C++ 69.31% Objective-C++ 0.33% GLSL 0.37% Yacc 0.58% HTML 0.10% Shell 0.02% ZenScript 6.03% Python 0.04% SWIG 0.01% M4 0.53% JavaScript 0.01% Makefile 0.01% Assembly 0.01% Dockerfile 0.01% Batchfile 0.03%

gzdoom's People

Contributors

alexey-lysiuk avatar blue-shadow avatar blzut3 avatar boondorl avatar cacodemon345 avatar cmbruns avatar coelckers avatar doom2fan avatar dpjudas avatar drfrag666 avatar edward-san avatar edward850 avatar gaerzi avatar gutawer avatar inkoalawetrust avatar k0stov avatar kcat avatar leonard2 avatar madame-rachelle avatar majorcooke avatar mmaulwurff avatar nashmuhandes avatar ordinarymagician avatar prof-hastig avatar rheit avatar ricardoluis0 avatar shinymetagross avatar talon1024 avatar wohlstand avatar xaseracheron 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  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

gzdoom's Issues

Particle automatic fade is not smooth

By 'not smooth' I mean that if I have a particle with a lifetime of 175 (5 seconds), it does fade out slowly, but alpha does not go down fast enough. In other words, when the lifetime has reached 0, the alpha is still ~0.5. The longer the lifetime, the easier it is to see notice the issue.

EDIT: In fact, the particle does not last longer than 5 seconds it seems, no matter what I put for lifetime.

ZScript #defines and/or macros

Would it be possible to potentially create macros and/or defines for the sake of shortening longer bits of code?

Example in global space:
#define HorizVel cos(pitch)*20;
#define VertVel -sin(pitch)*20;

Then later in the states:
TNT1 A 0 A_SpawnItemEx("Rocket",0,0,0,HorizVel,0,VertVel,0,SXF_NOCHECKPOSITION|SXF_SETTARGET);

Random crash during saving

I've got random crash during saving while playing Tungsten map with 605a60d.

PStruct::WriteFields(ar=0x00007fff5fbfcc58, addr=0x0000000104366600, fields=0x000000013493eb28) + 104 at dobjtype.cpp:2320
RecurseWriteFields(type=0x000000013493ea80, ar=0x00007fff5fbfcc58, addr=0x0000000104366600) + 299 at dobjtype.cpp:2715
PClass::WriteAllFields(this=0x000000013493ea80, ar=0x00007fff5fbfcc58, addr=0x0000000104366600) const + 37 at dobjtype.cpp:2737
DObject::SerializeUserVars(this=0x0000000104366600, arc=0x00007fff5fbfcc58) + 79 at dobject.cpp:516
FSerializer::WriteObjects(this=0x00007fff5fbfcc58) + 256 at serializer.cpp:969
FSerializer::GetCompressedOutput(this=0x00007fff5fbfcc58) + 130 at serializer.cpp:1105
G_SnapshotLevel() + 183 at g_level.cpp:1528
G_DoSaveGame(okForQuicksave=true, filename=(Chars = "save0.zds"), description="1") + 378 at g_game.cpp:2258
G_Ticker() + 461 at g_game.cpp:1080
TryRunTics() + 1147 at d_net.cpp:1946

One probably important thing: processed class was None, i.e. its name has zero index. Is correct behavior to store such object in saved game?

It happened just once and I cannot reproduce it anymore. I loaded this save (it's just save0.zds with .zip extension added to pass GitHub filter), run to mancubus and saved there.

It was on macOS so I grabbed a core dump in order to get any needed information later. Please let me know what else I can check.

"State *****.* not flagged for use in weapons"

Allo, I've recieved this bug with 2 WADs now: Twilight Warrior and Zan Zan (gzdoom version of course), and whenever trying to fire a weapon it will pop up with "State ****. not flagged for use in weapons" (In the case of the fists weapon in Zan Zan, it was state Bluetorch.0). I've had this issue in the official 2.3 release and the newest git build (2.4 pre-16).

GetName(String) For ZScript

For classes and actors, gets the name of the actor if using GetName. Or if GetNameString, returns it as a string instead.

Problems with friendlies and +COUNTKILL

Friendly actors with +COUNTKILL will count up the monsters killed upon death, but they never update how many total monsters there are that are killable.

I'm trying to make it so friendly monsters really do add to both the monsters left and monsters killed. Monsters left, however, is never updated.

I can't tell if this is an issue that can be fixed internally or if a new flag is needed, +COUNTKILLFRIENDLY to work with this.

Sounds being overrided despite SNDINFO limit settings.

Note discussion in the link was a bit chaotic the most important thing is my second last post (Filystea).
The test file is here http://zandronum.com/tracker/view.php?id=2971

Generally I had this problem before with chaingunner but managed to fix it changing sound mp3/ogg to wav format. I just assumed that the wav format is better and did not try to explain it more.

But recently I saw that if I try to use with limit 0 soldier to shoot few times more than usually the sound gets overrided. the thing is it uses the wav format for sound and yet the problem occurs.

I also checked as someone else in the pointed topic that this happens on gzdoom. In test file just go to zombieguy with God mod on (it shoots back massively) and hit it. it will shoot back and the sound will get overrided. Or you won't even heard it.

[TStaticArray] Compiling errors

In file included from /home/edward-san/zdoom/gzdoom/trunk/src/__autostart.cpp:45:
In file included from /home/edward-san/zdoom/gzdoom/trunk/src/./autosegs.h:38:
In file included from /home/edward-san/zdoom/gzdoom/trunk/src/./doomtype.h:44:
/home/edward-san/zdoom/gzdoom/trunk/src/./tarray.h:553:3: error: use of
      undeclared identifier 'Count'
                Count = 0;
                ^
/home/edward-san/zdoom/gzdoom/trunk/src/./tarray.h:554:3: error: use of
      undeclared identifier 'Array'
                Array = NULL;
                ^
/home/edward-san/zdoom/gzdoom/trunk/src/./tarray.h:565:7: error: use of
      undeclared identifier 'Array'
                if (Array) delete[] Array;
                    ^
/home/edward-san/zdoom/gzdoom/trunk/src/./tarray.h:565:23: error: use of
      undeclared identifier 'Array'
                if (Array) delete[] Array;
                                    ^
/home/edward-san/zdoom/gzdoom/trunk/src/./tarray.h:570:3: error: use of
      undeclared identifier 'Array'
                Array = new T[amount];
                ^
/home/edward-san/zdoom/gzdoom/trunk/src/./tarray.h:571:3: error: use of
      undeclared identifier 'Count'
                Count = Amount;
                ^
/home/edward-san/zdoom/gzdoom/trunk/src/./tarray.h:571:11: error: use of
      undeclared identifier 'Amount'; did you mean 'amount'?
                Count = Amount;
                        ^~~~~~
                        amount
/home/edward-san/zdoom/gzdoom/trunk/src/./tarray.h:567:26: note: 'amount'
      declared here
        void Alloc(unsigned int amount)
                                ^
7 errors generated.

Gargoyles suffer pain when hitting each other

Tested with: 2.3pre-1092-g605a60d

When gargoyles slam into each other, the slammed gargoyle suffers pain from the event (pain only, no damage), something they didn't do before.

Note that I'm talking about pain here, not infighting, which was an issue that was fixed recently.

PowerDamage is broken

If the player has a powerup based on PowerDamage, and he tries to attack an enemy, the game will crash.

Example PK3: damagepowerup.zip. I've replaced the chainsaw with a double damage powerup pickup via mapinfo.

Crashing on Models

I didn't want to report this as an issue as it could be the result of bad drivers that I can not update, attached is a crash report from an older version of gzdoom (from during the zscript development), as the latest builds behave differently on the issue.

When any actor with a model spawns (including actors that are already placed in maps), gzdoom's window simply vanishes and the process stays in Background Processes in the task manager until I kill it, in the older version I get a crash log instead.

CrashReportsw.zip

ZScript Unmorph Function

I currently don't know of any specific way to perform a proper unmorph aside using the ACS function.

NOWARNING Powerup Flag

Disables the rapid blinking warning for when a powerup is about to expire. Useful for whenever people want to implement their own type of warning.

Clang warnings

/home/edward-san/zdoom/gzdoom/trunk/src/gl/data/gl_setup.cpp:360:26: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
                if (selfref+nobtextures!=sector->Lines.Size())
                    ~~~~~~~~~~~~~~~~~~~^ ~~~~~~~~~~~~~~~~~~~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/data/gl_setup.cpp:365:25: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
                if (selfref+notextures!=sector->Lines.Size())
                    ~~~~~~~~~~~~~~~~~~^ ~~~~~~~~~~~~~~~~~~~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/data/gl_setup.cpp:372:38: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
                                if (solidwall+nobtextures+selfref==sector->Lines.Size() && nextsec)
                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ ~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderer.cpp:207:22: warning: delete called on non-final 'FPresentShader' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
        if (mPresentShader) delete mPresentShader;
                            ^
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderer.cpp:212:31: warning: delete called on non-final 'FPresent3DCheckerShader' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
        if (mPresent3dCheckerShader) delete mPresent3dCheckerShader;
                                     ^
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderer.cpp:213:30: warning: delete called on non-final 'FPresent3DColumnShader' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
        if (mPresent3dColumnShader) delete mPresent3dColumnShader;
                                    ^
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderer.cpp:214:27: warning: delete called on non-final 'FPresent3DRowShader' that has virtual functions but non-virtual destructor [-Wdelete-non-virtual-dtor]
        if (mPresent3dRowShader) delete mPresent3dRowShader;
                                 ^
4 warnings generated.
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderbuffers.cpp:451:21: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
        if (mEyeFBs.Size() > eye)
            ~~~~~~~~~~~~~~ ^ ~~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderbuffers.cpp:460:24: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
        while (mEyeFBs.Size() <= eye)
               ~~~~~~~~~~~~~~ ^  ~~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderbuffers.cpp:501:2: warning: variable 'dataformat' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
        default: I_FatalError("Unknown format passed to FGLRenderBuffers.Create2DTexture");
        ^~~~~~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderbuffers.cpp:504:59: note: uninitialized use occurs here
        glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, dataformat, datatype, data);
                                                                 ^~~~~~~~~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderbuffers.cpp:485:19: note: initialize the variable 'dataformat' to silence this warning
        GLenum dataformat, datatype;
                         ^
                          = 0
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderbuffers.cpp:501:2: warning: variable 'datatype' is used uninitialized whenever switch default is taken [-Wsometimes-uninitialized]
        default: I_FatalError("Unknown format passed to FGLRenderBuffers.Create2DTexture");
        ^~~~~~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderbuffers.cpp:504:71: note: uninitialized use occurs here
        glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, dataformat, datatype, data);
                                                                             ^~~~~~~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_renderbuffers.cpp:485:29: note: initialize the variable 'datatype' to silence this warning
        GLenum dataformat, datatype;
                                   ^
                                    = 0
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_postprocess.cpp:326:24: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
        for (int i = 0; i + 1 < mBuffers->ExposureLevels.Size(); i++)
                        ~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/renderer/gl_postprocess.cpp:548:69: warning: comparison of integers of different signs: 'DWORD' (aka 'unsigned int') and 'int' [-Wsign-compare]
        if (gl_fixedcolormap < CM_FIRSTSPECIALCOLORMAP || gl_fixedcolormap >= CM_MAXCOLORMAP)
                                                          ~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~
4 warnings generated.
2 warnings generated.
/home/edward-san/zdoom/gzdoom/trunk/src/gl/textures/gl_material.cpp:288:46: warning: comparison of integers of different signs: 'int' and 'DWORD' (aka 'unsigned int') [-Wsign-compare]
                alphatrans = (gl.legacyMode && translation == TRANSLATION(TRANSLATION_Standard, 8));
                                               ~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
/home/edward-san/zdoom/gzdoom/trunk/src/gl/dynlights/gl_glow.cpp:128:13: warning: comparison of integers of different signs: 'uint32' (aka 'unsigned int') and 'int' [-Wsign-compare]
        else if (c != -1)
                 ~ ^  ~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/dynlights/gl_glow.cpp:174:13: warning: comparison of integers of different signs: 'uint32' (aka 'unsigned int') and 'int' [-Wsign-compare]
        else if (c != -1)
                 ~ ^  ~~
/home/edward-san/zdoom/gzdoom/trunk/src/gl/dynlights/gl_glow.cpp:198:13: warning: comparison of integers of different signs: 'uint32' (aka 'unsigned int') and 'int' [-Wsign-compare]
        else if (c != -1)
                 ~ ^  ~~
3 warnings generated.
/home/edward-san/zdoom/gzdoom/trunk/src/gl/system/gl_debug.cpp:147:12: warning: comparison of integers of different signs: 'int' and 'GLenum' (aka 'unsigned int') [-Wsign-compare]
        if (level != mCurrentLevel)
            ~~~~~ ^  ~~~~~~~~~~~~~
1 warning generated.
/home/edward-san/zdoom/gzdoom/trunk/src/p_3dfloors.cpp:999:24: warning: format specifies type 'char *' but the argument has type 'int' [-Wformat]
                                ffloors[i]->flags, ffloors[i]->alpha, (ffloors[i]->flags&FF_EXISTS)? "Exists":"", (ffloors[i]->flags&FF_DYNAMIC)? "Dynamic":"");
                                                   ^~~~~~~~~~~~~~~~~
1 warning generated.
/home/edward-san/zdoom/gzdoom/trunk/src/p_pspr.cpp:139:3: warning: field 'Sprite' will be initialized after field 'Flags' [-Wreorder]
  Sprite(0),
  ^
1 warning generated.
/home/edward-san/zdoom/gzdoom/trunk/src/p_setup.cpp:3191:32: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
                if (linesDoneInEachSector[i] != sector->Lines.Size())
                    ~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~
1 warning generated.
/home/edward-san/zdoom/gzdoom/trunk/src/p_udmf.cpp:1698:18: warning: comparison of integers of different signs: 'uint32' (aka 'unsigned int') and 'int' [-Wsign-compare]
                if (lightcolor == -1 && fadecolor == -1 && desaturation == -1 && fogdensity == -1)
                    ~~~~~~~~~~ ^  ~~
/home/edward-san/zdoom/gzdoom/trunk/src/p_udmf.cpp:1698:37: warning: comparison of integers of different signs: 'uint32' (aka 'unsigned int') and 'int' [-Wsign-compare]
                if (lightcolor == -1 && fadecolor == -1 && desaturation == -1 && fogdensity == -1)
                                        ~~~~~~~~~ ^  ~~
/home/edward-san/zdoom/gzdoom/trunk/src/p_udmf.cpp:1717:19: warning: comparison of integers of different signs: 'uint32' (aka 'unsigned int') and 'int' [-Wsign-compare]
                        if (lightcolor == -1) lightcolor = PalEntry(255,255,255);
                            ~~~~~~~~~~ ^  ~~
/home/edward-san/zdoom/gzdoom/trunk/src/p_udmf.cpp:1718:18: warning: comparison of integers of different signs: 'uint32' (aka 'unsigned int') and 'int' [-Wsign-compare]
                        if (fadecolor == -1)
                            ~~~~~~~~~ ^  ~~
4 warnings generated.
/home/edward-san/zdoom/gzdoom/trunk/src/textures/warptexture.cpp:45:48: warning: field 'Spans' will be initialized after field 'Speed' [-Wreorder]
: GenTime (0), SourcePic (source), Pixels (0), Spans (0), Speed (1.f)
                                               ^
1 warning generated.
/home/edward-san/zdoom/gzdoom/trunk/src/scripting/codegeneration/codegen.cpp:4032:12: warning: variable 'cast' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
                else if (op2.RegType == REGT_INT) cast = CAST_I2S;
                         ^~~~~~~~~~~~~~~~~~~~~~~
/home/edward-san/zdoom/gzdoom/trunk/src/scripting/codegeneration/codegen.cpp:4034:51: note: uninitialized use occurs here
                build->Emit(OP_CAST, strng2.RegNum, op2.RegNum, cast);
                                                                ^~~~
/home/edward-san/zdoom/gzdoom/trunk/src/scripting/codegeneration/codegen.cpp:4032:8: note: remove the 'if' if its condition is always true
                else if (op2.RegType == REGT_INT) cast = CAST_I2S;
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~               ~
/home/edward-san/zdoom/gzdoom/trunk/src/scripting/codegeneration/codegen.cpp:4016:11: note: initialize the variable 'cast' to silence this warning
                int cast;
                        ^
                         = 0
/home/edward-san/zdoom/gzdoom/trunk/src/scripting/codegeneration/codegen.cpp:3999:12: warning: variable 'cast' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
                else if (op1.RegType == REGT_INT) cast = CAST_I2S;
                         ^~~~~~~~~~~~~~~~~~~~~~~
/home/edward-san/zdoom/gzdoom/trunk/src/scripting/codegeneration/codegen.cpp:4001:50: note: uninitialized use occurs here
                build->Emit(OP_CAST, strng.RegNum, op1.RegNum, cast);
                                                               ^~~~
/home/edward-san/zdoom/gzdoom/trunk/src/scripting/codegeneration/codegen.cpp:3999:8: note: remove the 'if' if its condition is always true
                else if (op1.RegType == REGT_INT) cast = CAST_I2S;
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~               ~
/home/edward-san/zdoom/gzdoom/trunk/src/scripting/codegeneration/codegen.cpp:3983:11: note: initialize the variable 'cast' to silence this warning
                int cast;
                        ^
                         = 0
2 warnings generated.

Note: the warptexture one doesn't happen in ZDoom, because the fields were reordered in GZDoom.

Sloped 3D Floors not displaying correctly

Tested in GZDoom 2.2.0, 2.3.0, and the latest GZDoom-GPL.
Tested as working correctly in GZDoom 2.1.1

Here they are in 2.1.1
http://imgur.com/a/OvtDZ
and here they are in GZGPL 1.0. They look the same as this in GZDoom 2.2.0 and 2.3.0 http://imgur.com/a/x7UWD

The top and bottom of the sloped 3d floor are invisible, and the floor and ceiling of said sector appear stretched. Also, under the bridge, I lowered the sector lighting and in these versions it is only darker when I stand in said sector.

Hope this is an okay format, this is my first time reporting a bug here, and I'm unsure if there isn't just some rendering setting that is messing it up.

Crash very early during multiplayer

GZDoom 2.3.0. The attached CrashReport.zip is while using a pretty hefty mod (Guncaster), but we were able to reproduce the problem with vanilla Ultimate DOOM, and also with DOOM 2.

To reproduce:

  1. Start 2 player internet co-op game
  2. One player should run for the armour to the left of spawn, up the stairs on E1M1
  3. As they cross the doorway, their game will lock up and/or crashdump

Up until that point multiplayer appears to be functioning normally, i.e. we can see each-other move.

Does not seem to affect it:

  • If the pk3 in this report is loaded
  • If it's the host or the client
  • Timing, much...you seem to have to move for it to happen (although when we tried DOOM 2 it did seem to crash while we were firing from the starting ledge of the first mission). Making a beeline for the armour or dancing around the starting area for a moment first makes no difference: you crash as you pass the doorway.

Cannot reproduce in singleplayer.

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.