• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 10:07
CET 16:07
KST 00:07
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2TL.net Map Contest #21: Winners12Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10[ASL20] Finals Preview: Arrival13
Community News
[TLMC] Fall/Winter 2025 Ladder Map Rotation12Weekly Cups (Nov 3-9): Clem Conquers in Canada4SC: Evo Complete - Ranked Ladder OPEN ALPHA8StarCraft, SC2, HotS, WC3, Returning to Blizzcon!45$5,000+ WardiTV 2025 Championship7
StarCraft 2
General
Mech is the composition that needs teleportation t RotterdaM "Serral is the GOAT, and it's not close" RSL Season 3 - RO16 Groups C & D Preview [TLMC] Fall/Winter 2025 Ladder Map Rotation TL.net Map Contest #21: Winners
Tourneys
RSL Revival: Season 3 Sparkling Tuna Cup - Weekly Open Tournament Constellation Cup - Main Event - Stellar Fest Tenacious Turtle Tussle Master Swan Open (Global Bronze-Master 2)
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 499 Chilling Adaptation Mutation # 498 Wheel of Misfortune|Cradle of Death Mutation # 497 Battle Haredened Mutation # 496 Endless Infection
Brood War
General
FlaSh on: Biggest Problem With SnOw's Playstyle BW General Discussion What happened to TvZ on Retro? Brood War web app to calculate unit interactions [ASL20] Ask the mapmakers — Drop your questions
Tourneys
[Megathread] Daily Proleagues Small VOD Thread 2.0 [BSL21] RO32 Group D - Sunday 21:00 CET [BSL21] RO32 Group C - Saturday 21:00 CET
Strategy
PvZ map balance Current Meta Simple Questions, Simple Answers How to stay on top of macro?
Other Games
General Games
Path of Exile Stormgate/Frost Giant Megathread Nintendo Switch Thread Clair Obscur - Expedition 33 Beyond All Reason
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread SPIRED by.ASL Mafia {211640}
Community
General
Things Aren’t Peaceful in Palestine US Politics Mega-thread Russo-Ukrainian War Thread Artificial Intelligence Thread Canadian Politics Mega-thread
Fan Clubs
White-Ra Fan Club The herO Fan Club!
Media & Entertainment
Movie Discussion! [Manga] One Piece Anime Discussion Thread Korean Music Discussion Series you have seen recently...
Sports
2024 - 2026 Football Thread Formula 1 Discussion NBA General Discussion MLB/Baseball 2023 TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
SC2 Client Relocalization [Change SC2 Language] Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
Dyadica Gospel – a Pulp No…
Hildegard
Coffee x Performance in Espo…
TrAiDoS
Saturation point
Uldridge
DnB/metal remix FFO Mick Go…
ImbaTosS
Reality "theory" prov…
perfectspheres
Customize Sidebar...

Website Feedback

Closed Threads



Active: 2298 users

The Big Programming Thread - Page 300

Forum Index > General Forum
Post a Reply
Prev 1 298 299 300 301 302 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
obesechicken13
Profile Blog Joined July 2008
United States10467 Posts
May 13 2013 19:19 GMT
#5981
Tagging along:

What are the advantages and disadvantages of building a gui app with python and with C++?
I think in our modern age technology has evolved to become more addictive. The things that don't give us pleasure aren't used as much. Work was never meant to be fun, but doing it makes us happier in the long run.
uZr
Profile Joined April 2011
20 Posts
May 13 2013 19:39 GMT
#5982
On May 14 2013 04:11 mustache wrote:
seeing as i didnt change anything from the parent class QPushButton shouldnt this work without a problem? It doesnt though. The Compiler complains "no matching fuction for call CoinButton::CoinButton[const char[10]]


Two things are wrong there:
- You defined a new constructor which does not take any arguments, hence your error when compiling;
- You forgot to add the Q_OBJECT macro in your class, which will get you in troubles later when you will attempt to
connect to its signals/connect its slots

Should be something more like:

class CoinButton : public QPushButton
{
Q_OBJECT
public:
CoinButton(const QString& title, QWidget *parent = 0);
};


As a rule of thumb, you want to be able to chain all your QObject, hence the 'parent' in the constructor. This will ease up memory management as a parent automatically delete its child when it gets deleted in a destructor. (+ the Qt framework has done some nifty stuff when overloading the operator= in QObject such that it will automatically delete the previous lvalue if it wasn't NULL which is also another things making life easier with memory management, etc)

You implement your constructor like this for example:

CoinButton::CoinButton(const QString& title, QWidget *parent) :
QPushButton(title, parent)
{ /* Do anything else here */ }
Kambing
Profile Joined May 2010
United States1176 Posts
May 13 2013 19:41 GMT
#5983
On May 14 2013 04:19 obesechicken13 wrote:
Tagging along:

What are the advantages and disadvantages of building a gui app with python and with C++?


Frankly, there is little benefit to creating a gui app in C++ over Python. Python has the benefit of a cross-platform, standard gui library (tkinter). With C++, you are forced into platform-dependent solutions (Win32 or MFC on windows, Cocoa on OSX, GTK and others on Linux) although there are (non-standard) platform-independent solutions out there, i.e., QT. An app that requires a gui is also a sign (but not a necessary condition) that you do not need the low-level control that C++ affords you over a higher-level language like Python.
uZr
Profile Joined April 2011
20 Posts
Last Edited: 2013-05-13 19:54:45
May 13 2013 19:52 GMT
#5984
On May 14 2013 00:20 darkness wrote:
Well, there is memory manipulation in C as well such as malloc, realloc and free. Is this the hard part or do you refer to destructor and/or harder memory management?

It's not that it is harder than C, it's just that it has gotten much more complex/featureful over the years which can result in complicated situations:
toying with multiple inheritance, operator overloading, and templates can quickly result in getting yourself lost if you did it without following some common pattern (and render your code unusable for others as well). Throw in all the other more specific stuff not found in java (reference passing, pointers (on data or function), friend classes, lambda's, etc) and you add yet another layer of complexity.
You're not doing anything hard, it's just that you quickly write things that are too complex to be easily understood (and debugged, and extended, …). Hell in the end you are manipulating a stack, some registers and a few hundreds instructions, nothing hard in that, you just have to do rigorous reasonings
nunez
Profile Blog Joined February 2011
Norway4003 Posts
May 13 2013 19:59 GMT
#5985
On May 14 2013 04:41 Kambing wrote:
With C++, you are forced into platform-dependent solutions (Win32 or MFC on windows, Cocoa on OSX, GTK and others on Linux) although there are (non-standard) platform-independent solutions out there, i.e., QT.


seems like a contradictory statement...
conspired against by a confederacy of dunces.
mustache
Profile Joined April 2010
Switzerland309 Posts
Last Edited: 2013-05-13 20:53:25
May 13 2013 20:05 GMT
#5986
On May 14 2013 04:39 uZr wrote:
Show nested quote +
On May 14 2013 04:11 mustache wrote:
seeing as i didnt change anything from the parent class QPushButton shouldnt this work without a problem? It doesnt though. The Compiler complains "no matching fuction for call CoinButton::CoinButton[const char[10]]


Two things are wrong there:
- You defined a new constructor which does not take any arguments, hence your error when compiling;
- You forgot to add the Q_OBJECT macro in your class, which will get you in troubles later when you will attempt to
connect to its signals/connect its slots

Should be something more like:

class CoinButton : public QPushButton
{
Q_OBJECT
public:
CoinButton(const QString& title, QWidget *parent = 0);
};


As a rule of thumb, you want to be able to chain all your QObject, hence the 'parent' in the constructor. This will ease up memory management as a parent automatically delete its child when it gets deleted in a destructor. (+ the Qt framework has done some nifty stuff when overloading the operator= in QObject such that it will automatically delete the previous lvalue if it wasn't NULL which is also another things making life easier with memory management, etc)

You implement your constructor like this for example:

CoinButton::CoinButton(const QString& title, QWidget *parent) :
QPushButton(title, parent)
{ /* Do anything else here */ }

Ok it worked now thank you.

Bear in mind im learning C++ as im doing this project hence the following question:

So if I'm inheriting from the class QPushButton, the constructor I define in CoinButton must contain a constructor which initialises the parent QPushButton. I was under the assumption that I inherit the constructor methods of the parent class.

EDIT: Just read up a bit more on constructors of inherited classes, question answered!

thanks a bunch already

EDIT2: is there any reason to divide the definition and declaration of the constructor methods? i tried it directly implementing the constructor in the declaration(or rather combining declaration and definition) and it worked just fine. is this just a style thats common in c++?
Kambing
Profile Joined May 2010
United States1176 Posts
May 13 2013 20:13 GMT
#5987
On May 13 2013 06:46 darkness wrote:
What's so hard about the C++ syntax? It resembles Java a lot, sure cin/cout are a bit... weird, but that's ok

Alternatively, why do people say C++ is hard?


C++ is a deceptively difficult language because while it looks like Java, it requires far more in-depth knowledge of the language to "do right". Furthermore "doing it wrong" not only introduces inefficiencies but also unsafe code, security-vulnerable code, none of which is checked at compile-time. I'll give a concrete example shortly...
Kambing
Profile Joined May 2010
United States1176 Posts
Last Edited: 2013-05-14 02:32:19
May 13 2013 21:00 GMT
#5988
On May 14 2013 05:13 Kambing wrote:
Show nested quote +
On May 13 2013 06:46 darkness wrote:
What's so hard about the C++ syntax? It resembles Java a lot, sure cin/cout are a bit... weird, but that's ok

Alternatively, why do people say C++ is hard?


C++ is a deceptively difficult language because while it looks like Java, it requires far more in-depth knowledge of the language to "do right". Furthermore "doing it wrong" not only introduces inefficiencies but also unsafe code, security vulnerable code, none of which is checked at compile-time. I'll give a concrete example shortly...


Even though C++ looks a lot like Java, they are fundamentally different beasts. As a concrete example, consider the following implementation of a Linked List in Java.


class Node<T> {
T value;
Node<T> next;
Node(T value, Node<T>, next) { this.value = value; this.next = next; }
}

class LinkedList<T> {
Node<T> first;
public LinkedList() { this.first = null; }
public void push_back(T v) {
Node<T> n = new Node(v, null);
if (first == null) {
first = n;
} else {
Node<T> cur = first;
while (cur.next != null) { cur = cur.next; }
cur.next = n;
}
}
}


Since C++ looks a lot like Java, it's tempting to naively translate the code as follows:


template <typename T>
struct Node {
T value;
Node<T> *next;
Node(T value, Node<T> *next = nullptr) {
this->value = value; this->next = next;
}
};

template <typename T>
class LinkedList<T> {
Node<T> *first;
public:
LinkedList() { this->first = nullptr; }
void push_back(T v) {
Node<T> *n = new Node(v, nullptr);
if (first == nullptr) {
first = n;
} else {
Node<T> *cur = first;
while (cur->next != nullptr) { cur = cur->next; }
cur->next = n;
}
}
};


This is a straight-ahead translation. Of note, instead of generics, we use templates (which are also fundamentally different, but not germane to this discussion) and we must explicitly use pointers as necessary. However, this code is not memory safe. For example, if we have the following code snippet:


LinkedList<int> *l = new LinkedList<int>();
l.push_back(0);
delete l;


we leak the chunk of memory corresponding to the node allocated to hold 0. This is because we didn't specify how the LinkedList class ought to clean itself up when it is deleted. This is accomplished by the destructor:


template <typename T>
struct Node {
// ...
~Node() { delete next; }
};

template <typename T>
class LinkedList<T> {
// ...
~LinkedList() { delete first; }
};


Ignoring the potential difficulties in implementing other Linked List functions with this recursive implementation of destruction, this does the job. Another set of things wrong with the translation are the assignments in the constructors of Node and LinkedList. They introduce unnecessary copying as, depending on the instantiation of the template parameter T, we may call a (potentially) expensive constructor twice. To get around this, we need to use initializer lists to iniitalize the members of a class:


template <typename T>
struct Node {
// ...
Node(T _value, Node<T> *_next = nullptr) : value(_value), next(_next) { }
};

template <typename T>
class LinkedList<T> {
// ...
LinkedList() : first(nullptr) { }
};


We seem to be in the clear, but there are still more problems with this code. In particular, one of the strengths of C++ is being able to explicit allocate anything on the stack or the heap. Java only allows us to instantiate objects on the heap. Here we stack-allocate a LinkedList and copy it to another local variable.


LinkedList<int> l1;
l1.push_back(0);
LinkedList<int> l2;
l2 = l1;


However, now we have a problem. l1 and l2 both share the same nodes internally! This is because, by default, C++ shallowly copies class members during parameter passing, value returning, and assignment. In particular if l1 is deleted before l2, then l2 will be pointing to already-freed memory. To alleviate this problem, we need to implement the copy constructor and copy assignment operators:


template <typename T>
struct Node {
// ...
Node(const Node &other) :
value(other.value), next(new Node(*(other.next))) { }

Node& operator=(const Node &other) {
if (this != &other) {
delete next;
other = other.value
next = new Node(*(other.next));
}
return *this;
}
};

template <typename T>
struct LinkedList {
// ...
LinkedList(const LinkedList &other) : first(other.first) { }

LinkedList& operator=(const LinkedList &other) {
if (this != &other) {
delete first;
first = new Node(*(other.first));
}
}
}


Because the copy constructor, copy assignment operator, and the destructor all manage the resources held by the LinkedList and Node class, they all must be implemented together coherently (the so-called rule of three).

So in summary, to translate this simple Java code into C++ correctly, we needed to understand:

  • Using templates as generics,
  • Explicit memory lifetime management with pointers,
  • The destructor,
  • Initializer lists,
  • References, const, and copy semantics,
  • Pointer aliasing and memory management,
  • Operator overloading,
  • Copy construction and copy assignment.


In most treatments of C++, especially in the context of intro classes coming from Java, you only talk about the first three. The problem is that you need to understand it all to create a class that is truely memory safe. This is especially problematic as many people go through their entire careers not knowing that these considerations are not only vital but even exist at all!

The flipside is that this is precisely the power of C++. If you understand the language to this level, you can begin to appreciate what C++ affords you that no other language in existence currently does. It goes beyond mere the low-level performacne, lulz arguments that most people trumpet about the language.
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
May 13 2013 23:36 GMT
#5989
Alright, thanks for the long post. I'll try to figure it out more once I wake up, hopefully once again when I start learning C++ in summer (I'm busy with university right now). I also hope I get the chance to become good at this language. Speaking of which, is it matter of experience or knowledge/books? I guess both as any language.
Phunkapotamus
Profile Joined April 2010
United States496 Posts
May 14 2013 01:20 GMT
#5990
Nothing beats experience, but books will help prepare you for things you have not yet encountered.
"Do a barrel roll"
Kambing
Profile Joined May 2010
United States1176 Posts
May 14 2013 02:31 GMT
#5991
On May 14 2013 04:59 nunez wrote:
Show nested quote +
On May 14 2013 04:41 Kambing wrote:
With C++, you are forced into platform-dependent solutions (Win32 or MFC on windows, Cocoa on OSX, GTK and others on Linux) although there are (non-standard) platform-independent solutions out there, i.e., QT.


seems like a contradictory statement...


To clarify: the primary libraries of GUI development in C++ are platform dependent. There exists platform independent solutions. None of these are part of the standard library which adds additional complications to development and deployment.
LightMind
Profile Joined February 2011
Singapore11 Posts
May 14 2013 14:41 GMT
#5992
Hmm need some help here. As a computer science student in my first year, I am planning to do some self-study during this summer break. I am hoping to go into game programming. I have some experience with Python, C and C++, and is hoping to go more advance with either C or C++.

Which language would you recommend to go in depth with for self-studying during this summer holiday? And are there any books to recommend?

Thanks!
tofucake
Profile Blog Joined October 2009
Hyrule19152 Posts
May 14 2013 14:48 GMT
#5993
Methodologies are more important than specific languages, imo. Study up on data structures (always useful) and a few other things, sorting, for example, or design principals. Pick a language which you think will let you make some practical use of what you're studying (most books tend to use C++ for this). Languages are tools and are not actually the most important thing to know when you are learning programming.
Liquipediaasante sana squash banana
mustache
Profile Joined April 2010
Switzerland309 Posts
Last Edited: 2013-05-14 17:33:20
May 14 2013 15:01 GMT
#5994
-nuked-
Vorenius
Profile Blog Joined December 2010
Denmark1979 Posts
May 14 2013 19:15 GMT
#5995
I was hoping someone more experienced at MySQL syntax could help me with a query.

I have two relations.

goods (good_id, good_name, supplier)
recepycomponent (recepy_id, good_id, weight_netto)

I want to select the names of the goods that are contained in x or more recepies. Now I've managed to do so by first creating a view and then doing a select on it, but whenever I try to combine it into a single request I get a syntax error. Here's what I got:
 
CREATE VIEW goodsAmount(name,number) AS
SELECT good_name, count(*) FROM recepycomponent NATURAL JOIN goods
GROUP BY good_name;

SELECT name FROM goodsAmount
WHERE number >=3;

While this does work I wanted it as a single query, without creating a view first.
Perscienter
Profile Joined June 2010
957 Posts
May 14 2013 19:38 GMT
#5996
On May 14 2013 04:41 Kambing wrote:
Show nested quote +
On May 14 2013 04:19 obesechicken13 wrote:
Tagging along:

What are the advantages and disadvantages of building a gui app with python and with C++?


Frankly, there is little benefit to creating a gui app in C++ over Python. Python has the benefit of a cross-platform, standard gui library (tkinter). With C++, you are forced into platform-dependent solutions (Win32 or MFC on windows, Cocoa on OSX, GTK and others on Linux) although there are (non-standard) platform-independent solutions out there, i.e., QT. An app that requires a gui is also a sign (but not a necessary condition) that you do not need the low-level control that C++ affords you over a higher-level language like Python.

Is that your theory? Tkinter is really unpopular amongst the Python community. It's still being used, because it's bundled with Python, but most veterans seem to prefer QT or wx.
Kambing
Profile Joined May 2010
United States1176 Posts
Last Edited: 2013-05-14 19:58:07
May 14 2013 19:41 GMT
#5997
On May 15 2013 04:38 Perscienter wrote:
Show nested quote +
On May 14 2013 04:41 Kambing wrote:
On May 14 2013 04:19 obesechicken13 wrote:
Tagging along:

What are the advantages and disadvantages of building a gui app with python and with C++?


Frankly, there is little benefit to creating a gui app in C++ over Python. Python has the benefit of a cross-platform, standard gui library (tkinter). With C++, you are forced into platform-dependent solutions (Win32 or MFC on windows, Cocoa on OSX, GTK and others on Linux) although there are (non-standard) platform-independent solutions out there, i.e., QT. An app that requires a gui is also a sign (but not a necessary condition) that you do not need the low-level control that C++ affords you over a higher-level language like Python.

Is that your theory? Tkinter is really unpopular amongst the Python community. It's still being used, because it's bundled with Python, but most veterans seem to prefer QT or wx.


Yeah, Tkinter is shit. But it's strictly better than the nothing that is in the C++ standard library.

Another thing to point out is that the requirement of a GUI should not be a compelling reason to choose one language over the other. If it does end up being a compelling reason (for lack of better reasons out there), then you are likely working in a setting where the higher-level language is more appropriate.
supereddie
Profile Joined March 2011
Netherlands151 Posts
May 14 2013 19:45 GMT
#5998
On May 15 2013 04:15 Vorenius wrote:
I was hoping someone more experienced at MySQL syntax could help me with a query.

I have two relations.

goods (good_id, good_name, supplier)
recepycomponent (recepy_id, good_id, weight_netto)

I want to select the names of the goods that are contained in x or more recepies. Now I've managed to do so by first creating a view and then doing a select on it, but whenever I try to combine it into a single request I get a syntax error. Here's what I got:
 
CREATE VIEW goodsAmount(name,number) AS
SELECT good_name, count(*) FROM recepycomponent NATURAL JOIN goods
GROUP BY good_name;

SELECT name FROM goodsAmount
WHERE number >=3;

While this does work I wanted it as a single query, without creating a view first.

Check out the HAVING clause: http://www.mysqltutorial.org/mysql-having.aspx
"Do not try to make difficult things possible, but make simple things simple." - David Platt on Software Design
Vorenius
Profile Blog Joined December 2010
Denmark1979 Posts
May 14 2013 19:53 GMT
#5999
On May 15 2013 04:45 supereddie wrote:
Show nested quote +
On May 15 2013 04:15 Vorenius wrote:
I was hoping someone more experienced at MySQL syntax could help me with a query.

I have two relations.

goods (good_id, good_name, supplier)
recepycomponent (recepy_id, good_id, weight_netto)

I want to select the names of the goods that are contained in x or more recepies. Now I've managed to do so by first creating a view and then doing a select on it, but whenever I try to combine it into a single request I get a syntax error. Here's what I got:
 
CREATE VIEW goodsAmount(name,number) AS
SELECT good_name, count(*) FROM recepycomponent NATURAL JOIN goods
GROUP BY good_name;

SELECT name FROM goodsAmount
WHERE number >=3;

While this does work I wanted it as a single query, without creating a view first.

Check out the HAVING clause: http://www.mysqltutorial.org/mysql-having.aspx

Of course. Got it now, thanks
obesechicken13
Profile Blog Joined July 2008
United States10467 Posts
May 14 2013 20:28 GMT
#6000
On May 14 2013 04:41 Kambing wrote:
Show nested quote +
On May 14 2013 04:19 obesechicken13 wrote:
Tagging along:

What are the advantages and disadvantages of building a gui app with python and with C++?


Frankly, there is little benefit to creating a gui app in C++ over Python. Python has the benefit of a cross-platform, standard gui library (tkinter). With C++, you are forced into platform-dependent solutions (Win32 or MFC on windows, Cocoa on OSX, GTK and others on Linux) although there are (non-standard) platform-independent solutions out there, i.e., QT. An app that requires a gui is also a sign (but not a necessary condition) that you do not need the low-level control that C++ affords you over a higher-level language like Python.

Thanks. I feel like most applications have to be written to be platform dependent regardless. But I didn't know if C++ was like some competing language for developing small Gui apps.
I think in our modern age technology has evolved to become more addictive. The things that don't give us pleasure aren't used as much. Work was never meant to be fun, but doing it makes us happier in the long run.
Prev 1 298 299 300 301 302 1032 Next
Please log in or register to reply.
Live Events Refresh
Next event in 1h 53m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
SteadfastSC 350
TKL 341
Reynor 49
mcanning 46
StarCraft: Brood War
Britney 32905
Rain 4173
actioN 1647
Horang2 1446
Jaedong 1184
Shuttle 522
Stork 472
EffOrt 303
firebathero 261
Leta 114
[ Show more ]
Barracks 105
Shinee 97
ggaemo 96
Hyun 80
PianO 66
LaStScan 65
JYJ49
Shine 49
Mong 31
Rock 25
Movie 24
ToSsGirL 22
Bale 20
zelot 15
HiyA 10
soO 10
sorry 8
Sacsri 7
Dota 2
Gorgc5504
qojqva1773
Dendi1127
XcaliburYe145
LuMiX0
Counter-Strike
oskar115
Heroes of the Storm
Khaldor136
Other Games
B2W.Neo1782
DeMusliM470
Hui .333
Lowko306
Pyrionflax240
Fuzer 206
febbydoto6
Organizations
Dota 2
PGL Dota 2 - Main Stream8720
PGL Dota 2 - Secondary Stream3341
Other Games
EGCTV119
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 17 non-featured ]
StarCraft 2
• Berry_CruncH154
• StrangeGG 72
• IndyKCrew
• AfreecaTV YouTube
• intothetv
• Kozan
• sooper7s
• LaughNgamezSOOP
• Migwel
StarCraft: Brood War
• Michael_bg 3
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• C_a_k_e 2112
• Ler59
League of Legends
• Nemesis2754
Other Games
• WagamamaTV236
Upcoming Events
IPSL
1h 53m
ZZZero vs rasowy
Napoleon vs KameZerg
OSC
3h 53m
BSL 21
4h 53m
Tarson vs Julia
Doodle vs OldBoy
eOnzErG vs WolFix
StRyKeR vs Aeternum
Sparkling Tuna Cup
18h 53m
RSL Revival
18h 53m
Reynor vs sOs
Maru vs Ryung
Kung Fu Cup
20h 53m
Cure vs herO
Reynor vs TBD
WardiTV Korean Royale
20h 53m
BSL 21
1d 4h
JDConan vs Semih
Dragon vs Dienmax
Tech vs NewOcean
TerrOr vs Artosis
IPSL
1d 4h
Dewalt vs WolFix
eOnzErG vs Bonyth
Replay Cast
1d 7h
[ Show More ]
Wardi Open
1d 20h
Monday Night Weeklies
2 days
WardiTV Korean Royale
2 days
BSL: GosuLeague
3 days
The PondCast
3 days
Replay Cast
4 days
RSL Revival
4 days
BSL: GosuLeague
5 days
RSL Revival
5 days
WardiTV Korean Royale
5 days
RSL Revival
6 days
WardiTV Korean Royale
6 days
Liquipedia Results

Completed

Proleague 2025-11-14
Stellar Fest: Constellation Cup
Eternal Conflict S1

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
SOOP Univ League 2025
YSL S2
BSL Season 21
CSCL: Masked Kings S3
SLON Tour Season 2
RSL Revival: Season 3
META Madness #9
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025

Upcoming

BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
HSC XXVIII
RSL Offline Finals
WardiTV 2025
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter 2026: Closed Qualifier
eXTREMESLAND 2025
ESL Impact League Season 8
SL Budapest Major 2025
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.