Poll of the Day > Unity is going to start charging devs per install

Topic List
Page List: 1, 2, 3, 4
ParanoidObsessive
09/18/23 3:24:30 PM
#101:


Shrek posted...
intentional malice or not, it's not unusual for the c suite to engage in their own insider trading

It's not unusual, but if it becomes too obvious the SEC gets involved, and a lot of people get fucked.

This feels like the sort of situation where a lot of people start sending complaints to the SEC and they ca't really ignore it. Too much of a spotlight sends the cockroaches scurrying.

---
"Wall of Text'D!" --- oldskoolplayr76
"POwned again." --- blight family
... Copied to Clipboard!
ConfusedTorchic
09/18/23 3:55:58 PM
#102:


ParanoidObsessive posted...
It's not unusual, but if it becomes too obvious the SEC gets involved, and a lot of people get fucked.

This feels like the sort of situation where a lot of people start sending complaints to the SEC and they ca't really ignore it. Too much of a spotlight sends the cockroaches scurrying.
lmao

nothing will happen

the only way you can get hit for insider trading is if you actually admit that's what you did. otherwise, nothing can be done since nothing can be proven.

martha stewart, for example, was recorded talking about it when she did it. that's why she got hit. if that never happened, she would never have gotten caught, even if it was really obvious.

---
https://www.youtube.com/watch?v=Jne9t8sHpUc
... Copied to Clipboard!
Nichtcrawler-X
09/19/23 10:37:56 AM
#103:


Humble seems to have bundles as introduction to 4 game development environments/engines right now and the Unity one is very clearly doing by far the worst in sales.

---
Official Teetotaller of PotD
Dovie'andi se tovya sagain!
... Copied to Clipboard!
Revelation34
09/19/23 11:17:44 AM
#104:


Shrek posted...
...you don't lie about it coming from your company, fool.


Citation needed.

---
Gamertag: Kegfarms, BF code: 2033480226, Treasure Cruise code 318,374,355, Steam: Kegfarms, Switch: SW-1900-5502-7912
... Copied to Clipboard!
adjl
09/19/23 3:57:50 PM
#105:


Revelation34 posted...
Citation needed.

Lie about a bomb threat coming from some nebulous stranger=Free sympathy points from the general public for being so cruelly mistreated, offsetting whatever PR disaster you're dealing with

Lie about a bomb threat coming from one of your employees=Paint yourself as a bad enough employer to push your employees to such an extreme, especially in a context where public image is already really bad, most likely just doubling down on the bad PR

One has potential benefit, the other risks making it worse. That doesn't mean they can't do it, but it would be a particularly bad idea.

Nichtcrawler-X posted...
Humble seems to have bundles as introduction to 4 game development environments/engines right now and the Unity one is very clearly doing by far the worst in sales.

And given that I believe the Unity one launched before all this nonsense, I'm guessing many of those sales are regretting it.

---
This is my signature. It exists to keep people from skipping the last line of my posts.
... Copied to Clipboard!
Blue_Thunder
09/19/23 7:12:35 PM
#106:


https://twitter.com/Terraria_Logic/status/1704227519027651016?t=lPQv4u9Vz5cPofHiKRtH-Q

Nice.

---
Resident Synthwave enjoyer. https://www.youtube.com/watch?v=7SYUwGoheac
... Copied to Clipboard!
#107
Post #107 was unavailable or deleted.
Metalsonic66
09/19/23 9:12:52 PM
#108:


GoodGuyTerrariaDevs

---
PSN/Steam ID: Metalsonic_69
Big bombs go kabang.
... Copied to Clipboard!
Zareth
09/20/23 3:34:10 AM
#109:


ReLogic is based.
They've done like 8 different "final" Terraria updates so far. So much free content.

---
What would Bligh do?
... Copied to Clipboard!
Yellow
09/20/23 6:44:09 AM
#110:


Godot looking pretty good, I'm writing a networking framework to use with it right now.

Using the new QUIC protocol.
... Copied to Clipboard!
adjl
09/20/23 8:28:48 AM
#111:


Blue_Thunder posted...
https://twitter.com/Terraria_Logic/status/1704227519027651016?t=lPQv4u9Vz5cPofHiKRtH-Q

Nice.

Very nice.

---
This is my signature. It exists to keep people from skipping the last line of my posts.
... Copied to Clipboard!
Blue_Thunder
09/20/23 1:48:08 PM
#112:


https://www.youtube.com/watch?v=eQK23sAJ2y8

TL;DW: An app marketing/monetization company formerly friends with Unity has released an skeleton project on Github with the end goal of being able to convert Unity code and projects into projects compatible with other game engines, with the help of AI and the general public.

---
Resident Synthwave enjoyer. https://www.youtube.com/watch?v=7SYUwGoheac
... Copied to Clipboard!
adjl
09/20/23 2:32:50 PM
#113:


I really hope that comes together, because that's just beautiful.

---
This is my signature. It exists to keep people from skipping the last line of my posts.
... Copied to Clipboard!
Yellow
09/20/23 2:50:49 PM
#114:


Blue_Thunder posted...
released an skeleton project on Github

with the end goal of

with the help of AI

https://github.com/ProjectUnifree/unifree
Use ChatGPT to translate .cs files into Godot scripts and Unreal 3D classes. Here is how sample translation looks:

launch.sh (or launch.bat on windows) is the main script that downloads Unifree code, installs a python virtual environment, installs dependencies and launches the main program

This is cool and all, but actually what toilet idea nonsense am I looking at? Chat GPT/AI cannot be used like this. Why does it need a python virtual environment? Write a parser and converter.

Why would you use AI to convert C# into gdscript, instead of using the C# version of godot?????

Weird

This is like writing a PS1 emulator, but instead of writing the emulator, you set up an AI and chatgpt in a way that might write a PS1 emulator one day

See even when they're trying to help CEOs are just total intrusive twits
... Copied to Clipboard!
Entity13
09/21/23 4:31:46 AM
#115:


Well, thanks to Unity's recent foray into abysmal stupidity, I made about 300 bucks from the stock market, and probably could have made more if I acted a little faster or poured more money. Still, like with Acti-Blizz a couple years ago, it's akin to being paid to flip the bird at a company over its bad decisions.

---
http://i207.photobucket.com/albums/bb179/EntityXIII/entityfn7.jpg
... Copied to Clipboard!
grimhilde00
09/22/23 1:25:17 PM
#116:


Yellow posted...
https://github.com/ProjectUnifree/unifree

This is cool and all, but actually what toilet idea nonsense am I looking at? Chat GPT/AI cannot be used like this. Why does it need a python virtual environment? Write a parser and converter.

Why would you use AI to convert C# into gdscript, instead of using the C# version of godot?????

Weird

This is like writing a PS1 emulator, but instead of writing the emulator, you set up an AI and chatgpt in a way that might write a PS1 emulator one day

See even when they're trying to help CEOs are just total intrusive twits
yeah I really don't know why they would convert c# to gdscript. for one there's a ton of c# features not supported in gdscript

also for some reason with the influx of unity refugees there's this whole thing about gdscript vs c# on the subreddit now

I'm not talking about how catering to gdscript comes with a performance downgrade to c# cause that's real (there's solutions and gdscript is useful for amateur hobbyists which is a big part of the godot audience regardless but it would be nice if they fixed it)

but just, like, for some reason people are saying to move over to gdscript

why? I've been using Godot with c# this whole time. there's no reason to move over if you're already using c#

plus (hopefully) no one should care about more tutorials being in gdscript.. it's really easy to just convert the two

but yeah for some reason, coming from probably gdscript users, too many are saying you should use gdscript even partially like no, you don't need to

---
kriem
... Copied to Clipboard!
adjl
09/22/23 3:55:20 PM
#117:


And they've walked it back. No more retroactive application, ToS protections, no fee at all for Personal users, doubled the cap for Personal from $100k to $200k, and Pro/Enterprise users pay the lesser of 2.5% of their revenue or a flat fee per install, based on self-reported data, and only starting after $1 million. Roughly as expected, since this looks significantly more reasonable next to the outlandish original proposition than it would in a vacuum, and I'm guessing the executives bought back their shares before making this announcement. I guess we'll see if they burned too many bridges with the original proposition to win people back.

---
This is my signature. It exists to keep people from skipping the last line of my posts.
... Copied to Clipboard!
Yellow
09/22/23 7:03:28 PM
#118:


grimhilde00 posted...
yeah I really don't know why they would convert c# to gdscript. for one there's a ton of c# features not supported in gdscript

also for some reason with the influx of unity refugees there's this whole thing about gdscript vs c# on the subreddit now

I'm not talking about how catering to gdscript comes with a performance downgrade to c# cause that's real (there's solutions and gdscript is useful for amateur hobbyists which is a big part of the godot audience regardless but it would be nice if they fixed it)

but just, like, for some reason people are saying to move over to gdscript

why? I've been using Godot with c# this whole time. there's no reason to move over if you're already using c#

plus (hopefully) no one should care about more tutorials being in gdscript.. it's really easy to just convert the two

but yeah for some reason, coming from probably gdscript users, too many are saying you should use gdscript even partially like no, you don't need to
A serious effort would come in the form of an asset import plugin. Or import support. Hell, it's open source, just do it there. But yeah think combining Python, AI, and ChatGPT for such a simple task is such a terrible approach that I would be more annoyed if this became the norm.

Sorry to the long-time gdscript users, but your cute little language is waaay less relevant than .NET. There's a lifetime of .NET libraries and only a small handful of features for gdscript.

Programmers are smart, but often make terrible decisions because they have a lot of sunken cost fallacy going on.
... Copied to Clipboard!
grimhilde00
09/23/23 3:22:33 AM
#119:


Yellow posted...
A serious effort would come in the form of an asset import plugin. Or import support. Hell, it's open source, just do it there. But yeah think combining Python, AI, and ChatGPT for such a simple task is such a terrible approach that I would be more annoyed if this became the norm.

Sorry to the long-time gdscript users, but your cute little language is waaay less relevant than .NET. There's a lifetime of .NET libraries and only a small handful of features for gdscript.

Programmers are smart, but often make terrible decisions because they have a lot of sunken cost fallacy going on.
I think gdscript users are mainly just hobbyists (which I am too for game dev so no knock on that!), most Godot users are since the industry is unity or unreal. but I saw someone say they couldn't understand what an interface vs a class is so that gives you an idea lol

though I have seen others say it's nice for prototyping quickness then switch over or combine the two, idk don't care much for it and never saw the need

but yeah c# obviously has way more going for it, just Godot has a lot of amateur audience which isn't necessarily bad, it's approachable, but yeah

---
kriem
... Copied to Clipboard!
Yellow
09/25/23 3:50:41 PM
#120:


People really unfairly bash C# all the time so it's nothing that surprises me. It's reminiscent of the days when C# actually was terrible, back when it was closed source and slower than C++. I really hate to say "C# is the best for mostly everything", but I mean... It has the line count of Python with the speed of C++, it runs on anything. I'm willing to bet a C# script is the same line count as gdscript. They both follow the same high-level form where everything's as short as it should sensibly be. The only reason we don't use it instead of Javascript is because the community interest isn't there, but we all agree Javascript is terrible.

I once to took a random Python script off the internet and converted it to C# and it had the same exact line count, but people still say Python is easier to use. It's like a weird "status quo" bias that makes people assume that something revered is revered for a reason and to think otherwise is ignorant.

Also here's an example of things I hate about Unity. The "we can't do it sorry, here's an extremely low-level explanation in case you still think you're smarter than me" attitude.

https://forum.unity.com/threads/why-doesnt-unity-try-to-make-the-dictionary-and-stack-serializable.1106488/

"We can't serialize Dictionary because it's complicated."

I literally just wrote a library that serializes dictionaries. And I didn't use any hacks either, just normal C# reflection. It took me 4 minutes to add support for dictionaries.

I already had support for serializing ICollection<>. The only thing I had to do differently was detect if it was a KeyValuePair<,> and change the binding flags to include private fields. That's it. That's what JsonConvert does as well. That's what Unity should do so literally every single developer doesn't have to spend half an hour finding the SerializableDictionary class online, or actually write their own.
... Copied to Clipboard!
grimhilde00
09/25/23 4:40:19 PM
#121:


I mean c# isn't my favourite language. Professionally I've used Java, Javascript/Typescript, golang, and Scala.

fucking love functional programming and cats effect with scala personally

but between c# and gdscript, by far I want c# with type safety, abstract classes, structs, generic typing, and interfaces. I use all that in my game project. c# is perfectly fine

also yeah serializing is basic

---
kriem
... Copied to Clipboard!
Yellow
09/25/23 5:12:03 PM
#122:


Programmers have colonized another topic on a casual board.

Ok to be fair I have not checked out golang or Scala and they could be better (subjective imo) than C# for all I know.

Also there was a small catch with Dictionary. It breaks the rules? It implements ICollection<KeyValuePair<TKey, TValue>>, but doesn't implement Add(KeyValuePair<TKey, TValue> item). I have no idea why it's allowed to do this. It has Add(TKey key, TValue value) in its place.

It literally breaks the interface it implements, rude.
https://gamefaqs.gamespot.com/a/user_image/2/7/8/AAbsMXAAE31e.png

Maybe that's what they meant by "too complicated". Anyway, a special case was added for it.

Edit
https://stackoverflow.com/questions/53277787/dictionary-inherited-through-icollection-interface-but-dont-implement-all-the

Unity impossible code;
https://github.com/jamieyello/SlothSockets/blob/master/SlothSockets.Tests/SerializerTests.cs#L130
... Copied to Clipboard!
Yellow
09/25/23 6:27:15 PM
#123:


I had to grab the "ICollection`1" type to get it reliably.

Apparently up until at least 2014, Dictionaries were not serializable in XML. Maybe that's why everyone uses JsonConvert. I just used reflection to do it easily.

https://learn.microsoft.com/en-us/archive/blogs/seshadripv/serializing-an-object-of-the-keyvaluepair-generic-class

I would make a game now but it's not as fun as making libraries. I'm thinking about how to best integrate it into Godot. I want to make it extremely simple to use.

Sorry for rambling, I'm done now.
... Copied to Clipboard!
Lokarin
09/25/23 8:18:56 PM
#124:


I miss when all the code was LDA and SEQ

---
"Salt cures Everything!"
My YouTube: https://www.youtube.com/user/Nirakolov/videos
... Copied to Clipboard!
Yellow
09/25/23 8:45:51 PM
#125:


Lokarin posted...
I miss when all the code was LDA and SEQ
That's so outdated I can't even find it on Google.
... Copied to Clipboard!
Lokarin
09/26/23 1:37:07 AM
#126:


Yellow posted...
That's so outdated I can't even find it on Google.

oh, they're functions in various old z80 based systems like 6502

---
"Salt cures Everything!"
My YouTube: https://www.youtube.com/user/Nirakolov/videos
... Copied to Clipboard!
Yellow
09/28/23 9:01:14 PM
#127:


Godot plans to add support for Python, C++, Rust, and other languages using their new extension system

That means it will probably support every language in the future from community extensions. Pretty cool.

https://www.youtube.com/watch?v=T5sJr8QXfnM
... Copied to Clipboard!
Zareth
09/29/23 1:03:21 AM
#128:


In other news, Epic just laid off like 900 people

---
What would Bligh do?
... Copied to Clipboard!
Yellow
09/29/23 1:26:16 AM
#129:


https://www.epicgames.com/site/en-US/news/layoffs-at-epic
For a while now, we've been spending way more money than we earn, investing in the next evolution of Epic and growing Fortnite as a metaverse-inspired ecosystem for creators. I had long been optimistic that we could power through this transition without layoffs, but in retrospect I see that this was unrealistic.
Meataverse is shareholder vaporware that means absolutely nothing to anyone else
... Copied to Clipboard!
Zareth
09/29/23 3:10:16 AM
#130:


The Fortnite well is drying up

---
What would Bligh do?
... Copied to Clipboard!
Yellow
09/29/23 3:24:12 AM
#131:


Maybe it was the free game store that no one actually buys anything from because steam does everything it does better
... Copied to Clipboard!
adjl
09/29/23 8:15:33 AM
#132:


"Make a better service? Nah, let's just throw money around to give people free stuff and buy exclusivity deals. That definitely won't result in people just collecting their free games but continuing to use Steam."

---
This is my signature. It exists to keep people from skipping the last line of my posts.
... Copied to Clipboard!
Yellow
09/29/23 9:25:41 AM
#133:


They had to add a lot of missing features to catch up with Steam.

I would never consider actually buying an Epic game unless they

Added LAN streaming
Added Steam games
Integrate with Steam in general (Epic games showing up in Steam)
Make their Launcher UI better in general. Like, amazing UI. It's unintuitive and takes up too much of the screen. It runs at like 20 FPS for no reason.
... Copied to Clipboard!
adjl
09/29/23 9:53:42 AM
#134:


At least it only took them a year and a half to add a shopping cart.

---
This is my signature. It exists to keep people from skipping the last line of my posts.
... Copied to Clipboard!
grimhilde00
09/29/23 12:51:33 PM
#135:


Yellow posted...
Godot plans to add support for Python, C++, Rust, and other languages using their new extension system

That means it will probably support every language in the future from community extensions. Pretty cool.

https://www.youtube.com/watch?v=T5sJr8QXfnM

I'm... kind of tempted to add support for SmileBASIC

c++ and rust is already supported just not as easily, but people code with that already

---
kriem
... Copied to Clipboard!
Lokarin
09/29/23 1:39:00 PM
#136:


Unity kills self, in bid to make money....

Is this Twitter?

---
"Salt cures Everything!"
My YouTube: https://www.youtube.com/user/Nirakolov/videos
... Copied to Clipboard!
Entity13
09/29/23 8:42:53 PM
#137:


Lokarin posted...
Unity kills self, in bid to make money....

Is this Twitter?

If it were Twitter, I wouldn't have been able to make money off its failings. No, really, if Twitter were still on the market, I'd have made enough money to buy a couple houses and retire by now. <_<

---
http://i207.photobucket.com/albums/bb179/EntityXIII/entityfn7.jpg
... Copied to Clipboard!
rjsilverthorn
09/30/23 12:32:00 AM
#138:


Lokarin posted...
Unity kills self, in bid to make money....

Is this Twitter?
No, Twitter's shareholders got bailed out by a rich idiot that vastly overpaid for it.
... Copied to Clipboard!
Revelation34
10/02/23 6:03:56 AM
#139:


adjl posted...
At least it only took them a year and a half to add a shopping cart.


It took them even longer to add a search bar in your library.

---
Gamertag: Kegfarms, BF code: 2033480226, Treasure Cruise code 318,374,355, Steam: Kegfarms, Switch: SW-1900-5502-7912
... Copied to Clipboard!
Yellow
10/02/23 4:12:05 PM
#140:


I've been getting pretty good in Godot, I'm better than I was in Unity already.

I'm working on a "cookie clicker"/RTS style game. If I ever finish it, it'll be 90% free and then a flat $8 for the full game, no ads or microtransactions. Respect your player base!

I spent a while making a clicker defense game, but I scrapped the whole thing because it felt like too similar to an existing FTP mobile game I was playing.

Hopefully by the time I'm ready to publish they have Android/iOS support, but my game will be good enough to publish on Steam.

https://gamefaqs.gamespot.com/a/user_image/6/5/2/AAbsMXAAE5Jc.png

The little guys move around too. I gave every little building collision.
... Copied to Clipboard!
Yellow
10/02/23 4:15:02 PM
#141:


There

https://cdn.discordapp.com/attachments/841437794559721503/1157792278207803464/villages.gif
... Copied to Clipboard!
Revelation34
10/03/23 12:02:39 PM
#142:


Yellow posted...
I've been getting pretty good in Godot, I'm better than I was in Unity already.

I'm working on a "cookie clicker"/RTS style game. If I ever finish it, it'll be 90% free and then a flat $8 for the full game, no ads or microtransactions. Respect your player base!

I spent a while making a clicker defense game, but I scrapped the whole thing because it felt like too similar to an existing FTP mobile game I was playing.

Hopefully by the time I'm ready to publish they have Android/iOS support, but my game will be good enough to publish on Steam.

https://gamefaqs.gamespot.com/a/user_image/6/5/2/AAbsMXAAE5Jc.png

The little guys move around too. I gave every little building collision.


This sounds interesting.

---
Gamertag: Kegfarms, BF code: 2033480226, Treasure Cruise code 318,374,355, Steam: Kegfarms, Switch: SW-1900-5502-7912
... Copied to Clipboard!
BucketCat
10/03/23 12:26:31 PM
#143:


I'm still using Unity

but I might change to Unreal or MonoGame after my current project(s) are completed. Probably Unreal because I like C++ the best of any language and my computer is finally powerful enough to use the Unreal editor without any issues.

---
sometimes i post a lot to compensate for not having friends...sorry in advance (or sorry after the fact if you read my signature after reading my post)
... Copied to Clipboard!
Yellow
10/03/23 4:01:45 PM
#144:


Revelation34 posted...
This sounds interesting.
Thanks, each tile will be it's own clicker game. Not as grindy, though.

On the overworld you will be harassed by little tiny enemies

BucketCat posted...
I'm still using Unity

but I might change to Unreal or MonoGame after my current project(s) are completed. Probably Unreal because I like C++ the best of any language and my computer is finally powerful enough to use the Unreal editor without any issues.
I recommend against using Monogame tbh. I used it for a while, it's faster to use a game engine to do anything.

Unless you feel like doing something particularly custom. I remember being very jealous of Unity developers cranking out a full demo in a weekend like it was nothing.

Plus I've been waiting 6 years for them to implement WebGL.
... Copied to Clipboard!
Revelation34
10/04/23 12:57:48 PM
#145:


Yellow posted...

Thanks, each tile will be it's own clicker game. Not as grindy, though.

On the overworld you will be harassed by little tiny enemies

I recommend against using Monogame tbh. I used it for a while, it's faster to use a game engine to do anything.

Unless you feel like doing something particularly custom. I remember being very jealous of Unity developers cranking out a full demo in a weekend like it was nothing.

Plus I've been waiting 6 years for them to implement WebGL.


You should post it here and tag me when it's out.

---
Gamertag: Kegfarms, BF code: 2033480226, Treasure Cruise code 318,374,355, Steam: Kegfarms, Switch: SW-1900-5502-7912
... Copied to Clipboard!
BucketCat
10/04/23 5:46:48 PM
#146:


Yellow posted...
I recommend against using Monogame tbh. I used it for a while, it's faster to use a game engine to do anything.

Unless you feel like doing something particularly custom. I remember being very jealous of Unity developers cranking out a full demo in a weekend like it was nothing.

Plus I've been waiting 6 years for them to implement WebGL.
yeah I'm mostly just interested in it because my AP computer science class back in highschool used XNA which eventually turned into monogame. It was fun at the time, but looking back compared to Unity it's really limited. I think that, overall, the limitations of monogame (and even Godot, because while good it's still not quite there in my opinion), will help people become better programmers and game designers.
I think I might just stick with Unity, and then learn Unreal on the side. It's silly but what I really want to do is make a portfolio so I can maybe someday get a job at a studio

---
sometimes i post a lot to compensate for not having friends...sorry in advance (or sorry after the fact if you read my signature after reading my post)
... Copied to Clipboard!
Yellow
10/04/23 7:16:42 PM
#147:


Yeah, and if you really wanted, you could just use direct drawing functions in Godot or Unity to do anything you would want Monogame for. You'd probably find pretty quickly that you actually want to use the more advanced features since you're going to end up re-creating them anyway.

Like making a 2D platformer, you reach a point where you can just type away and then wow would you look at that, you need to code your own level editor. Oh and we need a section where we can drag stuff in from, too.

To be perfectly honest Unity is still on the table, it's just not the "best" indie engine, and indie devs are really good about who they support. All the support for them is now lingering.

I was personally never a fan of Unity, the way the code worked, how they're still using Mono, how everything felt kind of bloated and slow. Godot C# is just a class library using a Godot nuget package, and you don't even need Godot open to compile. You don't even need to use it with Godot at all. It's the difference between good, modular code design and a spaghetti Todd Howard "it just works"
... Copied to Clipboard!
Yellow
10/05/23 3:49:10 AM
#148:


https://www.youtube.com/watch?v=MASAqbRMnaM
... Copied to Clipboard!
Yellow
10/06/23 6:51:06 PM
#149:


@grimhilde00

My only criticism of godot is how the nodes fetch each other. You have 3 options and they all have drawbacks.

A) GetTree().GetRoot().GetNode()... enforces non-modular code structure that breaks if you have more than one instance. Say I want two game instances running at the same time, that won't work
B) GetNode("%Identifier") only works to get nodes that exist in the same scene.
C) GetNode("../something") breaks easily if you re-arrange things.

It feels like hard coding paths left and right. This is something I imagine they'll have to improve later.
... Copied to Clipboard!
[deleted]
10/06/23 10:01:10 PM
#153:


[deleted]
... Copied to Clipboard!
Topic List
Page List: 1, 2, 3, 4