Skip to main content
GameDev.net gamedev.net
🔒 Locked

I'd like to rant about my gamedev experience. (5 years+)

Started by cmiewcmr8ufnrcnrr Mar 23, 2020 at 8:26 PM 40 replies 53.8k views
Original Post
cmiewcmr8ufnrcnrr
cmiewcmr8ufnrcnrr

tl;dr: Made a lot of shit, some finished, some not finished. Actual vision never implemented because it's a fantasy mmorpg and I'm just 1 person and not 50 people. Might have run out of energy. No this isn't a recruitment post. Just my story.

Full post:

I don't know why I have the sudden urge to type this out. This could become a depressing read, or an enlightening one. I'm not sure the last chapter of this story is over yet. If you're sipping your tea, bored, looking for something to read, maybe this is for you. I'm not going to make a specific point and it's not a recruitment post. I just want to post this maybe for therapeutical effect.

The real history of my gamedeving began in 2013 if I remember correctly. Technically it began much earlier, in 2003 I first tried to code but being a 16 year old teenager at the time, I really lacked the discipline, and the education. I always looked up to programmers and gamedevs, they possessed a magical skill, they could make anything they wanted. A bit later I was getting the education but still lacked the discipline. Around 2006 I first looked at the Irrlicht Engine and Ogre3D. For a moment I got quite excited when I managed to spawn that dwarf from the Irrlicht demo and that beautiful light effect. But I didn't have the skills to really work with it yet. Later I'd find the Unity engine. I'll get back to this later.

The games I loved the most when I was still young and impressionable were fantasy games. Gothic 1+2 and Realms of Arkania to be precise. The worlds were very immersive and alive. I had so much fun playing that. But it meant more to me than simple fun, it was maybe a form of escapism or being immersed into something beautiful. It was art, not just entertainment. They had a quite complete world with complete lore, wildlife, plants, geography… like myths come to digital reality.

The other thing that fascinated me were MMORPGs. I played many. And around that time, making an MMORPG was the hot shit to do. Forums were full of people wanting to make a fantasy MMORPG. Like later everyone wanted to make a Minecraft clone, then I also noticed a fad about Rogue-likes. But back in the day, the hot shit was MMORPGs. World of Warcraft never fascinated me, it was just a levelling mill, after level 20 I only continued because a friend kept playing this crap. I finally quit around level 50.

I was into the ones that had more life in them. Social and pvp. Ashen Empires, Mortal Online, Diaspora, WW2 Online, to name a few. Sad to say that I also stepped with my toes into Eve Online. Terrible game mostly.

Actually you didn't need to go into gamedev forums at all to find willing (but useless) team members, being in a game fan / player forum was enough. A lot of people were enthusiastic, “I can't do shit but I'm willing to learn”. Of course it never really led anywhere. Though I'm very impressed nowadays how much time and effort people are willing to put into modding existing games that they love instead of making their own.

A lot of people seemed to have the idea that MMOs were never ‘done right’. Even before WoW. WoW was the most successful levelling mill but it lacked the depth, it was a superficial levelling mill. I think up to this day, the genre “mmorpg” was never done right. Like there should have been something for those who didn't like WoW, but it never really happened. But that's an uncertain feeling and one that probably bit me later.

Around the year 2012 I began neglecting the rest of my life in favour of gamedev. In fact I didn't have much of a life, so I figured, might as well go back to your childhood dreams, work on something that I loved. That was when I first started programming for real on my own “serious gamedev projects”. I thought I was doing fine. I'm going to spoiler a bit: I wasn't doing fine. I'm actually not a great programmer. Not terrible either, I can get the job done, it just takes much too long. During the next couple of years I would learn to make everything that I wanted to make, I somewhat improved in programming. I can do what I want to do but it takes ages and basically, I'm a bad coder. I looked up what makes a coder bad and all the lists I found online were basically describing me for the most part. What I had going for myself were endurance and enthusiasm (and mental illness). I was constantly fighting against my own shortcomings, I was producing a lot of bugs and fixing them felt like progress - it wasn't. That's like throwing sticks into your bicycle wheel, then removing them and claiming it's progress.

I also didn't work straight towards goals. One disease that my coding and design always had was, that I would make convoluted, bloated systems that seemed very “smart" to me but actually just added weeks or months of work for no real gain as far as the game went. Like many, many people in gamedev, I had mental issues. This has always hindered me. Only my last project had a proper scope. More about that later.

So, the first game I began to make was a browser mmorpg written in php in a fantasy universe. It had a 2d map, it was turnbased, you could travel around, build towns, claim mines, get resources, build more buildings like taverns, town halls, there were mayor elections, laws…, in short, it was horrible. I quit after spending maybe half a year on it.

Then I reorientated myself when someone told me about the Unity engine. 3d didn't seem so big and unachievable anymore. I spent a lot of time (sometimes 16 hours a day, 25 days a month, I had burnout episodes every now and then that kept getting longer, my productivity has decreased all the time) on making map generators, chat servers, login servers, sharded game servers, UI. I ran out of steam eventually. I was lacking art when I started. Much later, in another attempt to make that ‘never done right’ fantasy mmorpg, I learned learn modelling and even the basics of animation.

But at the time, I stepped back again and made something smaller instead, a remake of a 2d space mmorpg that I played as a kid. To wrap this up, I finished that project. It took 7 months and was finished. But the gameplay… It was interesting in the year 2000. 15 years later, it didn't work anymore. I got good feedback on it by some people on reddit but it had some technical shortcomings which I didn't want to fix, I also had depression or something like that, so I took it down again relatively quickly. Another 7 months down the drain.

After that I'm losing track of the order of events. What happened was that I worked on another interesting project, an MMORTS (yep, I'm flexible) in which everyone was one unit. This seemed easy to make, but again it was too big for me by myself. Up to this day I think that might be an interesting concept, especially if it's about tactics. It was basically a remake of WW2 Online but in 2d, made with Unity. I spent several months on that as well, then quit.

When you make an online game, testing and debugging is a nightmare. Especially in the way that I did it at the time. I'd do shit like implementing registration and login before anything else, so every time I wanted to test something, I had to login. It made me ‘feel’ smart, but it was really dumb.

There was one project that was going to be a certain hit I think, something way more casual and fun, it was a co-production with someone else and a singleplayer game, but sadly mental issues took over and I dropped out of that project. I think I may have been afraid of success even. I wanted to make something ‘smart’ all the time, that always got in my way.

Well then there followed a period where I worked on ‘that fantasy game’ again. That MMO that was never done right. I did the best I could, as I said, learned modelling, animation, all while the burnout phases got worse. Eventually I suffered a back injury irl. After that, I couldn't take gamedev serious anymore, I couldn't concentrate on such tasks anymore. I thought to myself, why am I wasting all this time on gamedev. My life was a mess. It wasn't leading anywhere. I met a lot of people in gamedev with mental issues thanks to reddit. Gamedev seems to attract escapist personalities like cow dung attracts flies, to be blunt.

I took a long break after that back injury. Eventually I made a browser game. It's a fantasy mmo, turnbased. It's very simple. I cut everything down as simple as possible. You can go to work daily and get some exp, money, you can buy stuff at the store or learn skills from a trainer. You can travel and rob each other. It took over half a year again, but it's done, I haven't published it yet. But it plays in the same world that I wanted to tell with the Unity game. It's a really cut down version of what I wanted to make and I really didn't care about the graphics, fully intentional.

I'm getting exhausted from typing this. It must be horrible for you to read this. Let me wrap it up really.

I don't even have a proper design. The stuff that I wanted to make, that fantasy mmo that was never done right, probably wouldn't even work today because players aren't willing to put that much time into an online game anymore. Actually the pvp fantasy mmo genre was never very popular, whenever people had the choice, they picked non-pvp servers. I have only this diffuse idea of what the ideal mmorpg should be like, and if that idea was actually verbalised to the dot of the i, I think it might not be so special anymore. Dreams don't make sense when they're actually told. Only when you dream them. Mostly everything has been made already, it would only be a new composition of things plus some extras.

For example I always wanted to make a druid class that would pick herbs and some of them only grow during certain moon intervals in certain places. I want to get daylight done right, moonlight too of course. That's one thing that my previous attempts already had, great daylight. It needs to turn redder towards the end of the day.

I want to make pvp combat where the level gap is artificially diminished so that 5 noobs could beat up a vet. I want to make magic weapons extremely rare and people mostly use realistic rustic weapons. Neat, modest graphics like in Gothic. Climbing rocks like in Gothic. Climbing was very important in older games and disappeared in the newer ones.

I want these light effects done right. Modest and neat.

I wanted to make a coherrent gameworld, a mix of a peaceful idyll and dangerous places and optical beauty. So you get a sense of safety when you come back from a quest. This might not translate well to a game where people log in to find action.

I have only these diffuse ideas, a mood to create, a world to tell, but then to sit down and make it - I know how. Every step of it. Just to actually do it, it would take 200 years to even get to the beta if I work by myself. I'm not a great coder, not a great modeller, a terrible animator, and I lost most of my energy.

I think my next slow steps will be to slowly publish the browser game. Maybe I'll try to produce extremely rudimentary demo content for yet another fantasy mmorpg project that plays in the same universe as this browser game. More a mood demo than a gameplay demo really. Sadly it's the genre that requires the most assets. Maybe I'll have to resort to Minecraft-like figures. I really don't know. Maybe I'll never do anything again, or I'll run a crowdfunding campaign. At least I won't spend another 5 years blindly chasing the dragon.

And that's the story of how I have very little to show for my years in gamedev. I'm 32. At least I tried? Don't let these last words depress you, I'm just too good at finding fucked up puns.

Ok, I had to get this out.

WGS_Stillwater
WGS_Stillwater

You need a therapist, or a dog perhaps.

You burned yourself out doing something that everyone will tell you from the get go “don't do it - it's more than a beginner can handle” and feel surprised when they were right. Game development is fun, I can't speak for you, but it's going to come with it's shares of frustrations and if you decided on an MMO as your project and didn't understand the scope of it fully… you were doomed to fail/give up. If you aren't having fun doing something… do something else. Be realistic, people are still playing WoW over 15 years later because the core design is solid, the implementation is clean, and it took a TON of resources to make it happen on the scale they chose. It isn't about perfectionism, it's about the big picture.

Paraphrasing here: don't lose sight of the forest for one tree.

Accept your flaws and play to your strengths, if you suck at coding… don't try to become an expert. Do what comes natural. If world design/writing is your thing put all your focus on that and find someone that compliments your strengths and most importantly is EQUALLY as enthused as you are about the vision.

cmiewcmr8ufnrcnrr
cmiewcmr8ufnrcnrr

@WGS_Stillwater You're totally right about all of that, I agree. “If you aren't having fun doing something… do something else”. I tried to be disciplined instead, it was horrible.

I just felt like typing that out tonight, that's all. I haven't touched any gamedev in 3 months now.

I can't tell if my last project, the turnbased mmo browser game, was good or bad. It seemed very good up until the moment that I finished it. Will let the audience decide about that as soon as I can convince myself to spend 10 bux on a server again. ?

By the way yes, people are still playing WoW, but imo that's a different audience than the one that the ‘mmo done right’ would be catering to, so the existence of WoW never bothered me.

I found out too late how big the scope of this really was. Maybe one day I'll give it another try but only with a team and ideally funding too.

JoeJ
JoeJ

throwawaydev said:
I found out too late how big the scope of this really was. Maybe one day I'll give it another try but only with a team and ideally funding too.

Sounds you're still unable to accept your dream is out of reach.
But 5 years+ is not enough time to burn out. And you're still motivated.

Maybe i'm just lucky in having no interest in MMOs, more the FPS thing, but that's out of reach too. So i focused on smaller games. Mobile, 2D, finished them but without marketing it did not end up a success in terms of money.
I did not made those games for myself - i wanted FPS. So i made the games for someone else. My wife. She played them a lot, and so i was happy. Some other folks also liked the games.

But it was not what i wanted. so i kept working on other things as well. Own 3D and physics engine and such stuff. And i wanted to do things better than what was state of the art. I found out i have more motivation working on open technical problems than with working on games. Still in the process of completing the solutions i have found.

After all this time, like you i am now able to make the game i want. Learned it all, and… it would take 200 years. But i do not care, because for ages i have no plans to work on a game at all (i have only have plans about my tech, which may be unrealistic expectations).
Now, totally unexpected, i may soon be able to make this game in some years. Because my tech could allow me to build game world super quickly, characters could walk and run on their own by replacing animation with simulation, etc. Eventually. Maybe, after some more years of work.

But i've grown out of gaming. Current games are mostly totally terrible to me. I mean, it always was like only 1 out of 100 games was good, but nowadays? No game manages to convince me. There is no more game where i say: That's great, i want to make something like this too!
So i ask myself: What was my vision of that great FPS i've head many years ago?
I can't remember? No… i realize i never had a concrete vision of the perfect game. It was just a diffuse dream, back then, when pretty every game was great. There was no reason to ask for what makes a game good, so i never did.
Now i think a lot about game design only recently. I make progress in figuring out what has gone wrong with games IMO, but i don't know yet how to do better…

I can't help or make a proposal. To me, making games or related tech never was fun. It is about the vision i had as a child, about a virtual reality that should feel real. I want to get there. It's not kind of mental illness that would lure me into a fake reality - it is more the wish to play god i guess. But i do not feel burned out or tortured, although i work hard and without rest, on really hard problems, with little chance of success.
Maybe the reason i feel better is that i never had this one and only goal of the perfect MMO. I just did things and my goals changed with the outcome. Never achieved any of those goals, but it was at least a journey leading somewhere i never planned to go.
Maybe you could again consider to work on the project and vision of somebody else, with other people, but not being the leader. You already did, and it's unclear why you quit, although it looked quite promising.
Or you could try to shrink your visions to smaller scales elsewhere. Simple 2D graphics is not the only way - smaller worlds, less complexity, focus on just a single mechanic that is fun and grow from there… instead targeting a complete simulation of everything.

NikiTo
NikiTo

Can i rant a bit too?

I am super mega old now. I have not time to do what i enjoy. I need to hunt bugs all the day long. These are mostly typos. If you point at that “2” there and ask me: “shouldn't that 2 there be a 4 instead?”, i would tell you the correct answer, but i just can't find it.

That's why i mix my coding with writing in forums and chatting. Listening to YT videos. If i am too distracted i make typos, if i am too focused i make typos too.

But my original rant raid was gonna be about - i can not make what i enjoy any longer. I am super mega old now. I need to focus. I see great things in my head, but to get there i need to suffer coding the things that hurt me. How can you do what you enjoy, guys? I feel like if i did what i enjoyed(drawing hentai) i would achieve nothing in life.

I believe that if i keep torturing myself with things i don't like, i could succeed. What would I achieve in life by doing what i enjoy? Nothing IMO. I can change the world if i keep suffering.

I could play with Lego and stream it. I would earn my own food and roof. And then die from old. Because i am like 30 and something years old now.

But if i suffer i can change the world.

PhantomHeart12
PhantomHeart12

@throwawaydev Wow, this hits close to home. I am a 17 year old High school student. I understand what you meant about many gamedevs having mental issues and having an escapist personality, although I have not had the experience as strong as you have. Working 16 hours a day for months must of been grueling, but I honestly have to thank you or this. Although many may find this depressing, I really needed this. Your experience helped me to understand the real and time consuming career that making games is. Sadly one person can not make a game, it takes hundreds to create something as big as an MMO and even then the game might not even be successful. In the end, I thank you for helping me understand how hard reality is, your triumphs and challenges are reminders of how difficult it is to become a “Successful Game Dev”, and honestly most of it comes down to luck and being in the right place at the right time. Don't apologize for how "depressing
your rant was, in the end I am sure I will feel like that plenty of times if I don't quit haha, youth has the power of being optimistic and i'm sure it becomes harder to become optimistic as you grow older. I'd like you to know that you have helped me out just a little bit more by sharing this and I hope you figure out your goals and desires. Thank you for your very real and honest rant

wurstbrot
wurstbrot

Hello!

The advice about only doing something if it gives you fun (overall - can't and doesn't have to be in every minute) is really super important.

Apart from that, I don't think your experiences are so unusual or dramatic. Maybe I didn't read the full weight of your frustration between the lines, but to me, your story sounds pretty much normal for an enthusiastic hobby game developer. One with wrong goals and bad strategy, yes, but this isn't unusual or catastrophic either.

Keep on mind that nobody can ever create a full MMO all alone. That's just impossible. You really shouldn't blame yourself for not achieving this. Your “mistakes” (if I should even use this word at all) lie in your goal-setting, not in your craftsmanship.

Apart from this, hardship and failure are normal parts of life.

I'm a few years older than you, I work on games occasionally in my free time since more than 20 years. Apparently not nearly as intense as you over all the years, but I think it can still be compared. I haven't finished anything of significance yet. Perhaps I should add that I consider “finished” as a problematic metric in general, since it is totally normal for software to be never finished. So let's say “None of my projects ever progressed as far as I imagined and wished”.

And my projects weren't even ever as ambitious as yours. I was never into MMOs, neither playing or creating. My goals were always much more realistic, but still too large for my patience and/or available time. I have noticed this pattern long ago, but to this day, I'm failing to change it. But that's okay. I have learned tons and tons of cool things and I have fun when I'm programming (not always, but most of the time).

And then, one pattern did change over the last few years: I noticed that there are a few projects to which I'm coming back over and over again. The original idea of the oldest of them is from 2012. These projects, too, are still far from complete, but I realized that these are the ones which fascinate me most. I still start new ones all the time, but one of those to which I return repeatedly might perhaps even get “complete” one happy day in the far, far future. Or not.

Have fun with it. Everything else is secondary and should never be put above the fun for periods longer than a couple of hours or days, at maximum. Not in a hobby thing. And ideally not in a paid job, either (but I understand that this is often more difficult).

Good luck with your projects!

Bregma
Bregma

NikiTo said:
I am super mega old now.

NikiTo said:
Because i am like 30 and something years old now.

cough

You're the age of my kids. I still hack on game ideas I had when I was younger than you people. The journey is the destination. If it's a hobby, don't be afraid to take breaks. If it's your day job, work day job hours and take your time off off. Life is short, make it wide.

Stephen M. Webb
Professional Free Software Developer
NikiTo
NikiTo

@Bregma If you are 16, you are too old for a project that takes 80 years.

When you are one of two male kids in the family and you still have not finished your world-changing project, and your brother bought a car, got a mortgage already from working day by day, you realize how people treat you like a loser and they treat your brother as a successful man. There is when a person realizes that, doing what you enjoy and focusing on the journey, not the destination are teachings that don't quite work.

We need to produce something out of our projects! We must try to finish the projects.

And time goes by flying. Sometimes you blink for a moment and years have gone. I've lost 5 years of my life doing nothing, crying for my broken hearth. When there is not a father at your side to explain you how to handle love affairs…

Then, i lost years modeling, moving vertices around trying to create a nice surface. And then 3D software pulled out that drag-vertex-on-surface extra that nullified my efforts.

Then i had to learn to program alone. It is valid, but slower. I am very upset when people on internet tell to other people that “you need to be a math guru in order to program”. My bigger brother was pushing me to learn to program since i was a kid. But i was like - “Are you crazy? No! I can not program, i am bad at math formulas.”… I have lost years doing nothing useful, because of the “only math gurus can program” myth.

Only recently i clarified my priorities. It was after my 30. And my project is decades long.

An economical depression worse than the world have ever seen could strike this year and could make a PC cost 10 times more. I hope my laptop is working many years more.

I am focusing on my project 24/7 now. Living a minimalist life in order to not need to work, and to be able to program the whole day. I have to mix it with YT and chatting, because if i focus too much i see nothing. This is my off time, but it is mixed with the codding. What pisses me a lot, is to be coding a whole day the wrong thing, go to sleep, and at the next day looking at the code in the morning and realize it needs to be deleted, because i wrote sh-t the previous day. When I focus too much, I lose the big picture. I could code 100 lines of code, test is, debug it and find at the next day, it is logically worthless. It works, but i delete it. Lost time.

Not mentioning 95% of the time, i am searching for bugs made of a single character typo. I typo is not like an error because i am stupid. A typo is because i got too much or not enough focused.

Then there are the false positives. I search days for the error inside the spaghetti, because i assume the error is in the most complicated chunk of the program. And then i find out the error was not in that program, but in the program that visualizes the result for me. The result was correct but it showed it wrong on screen.

Plus, i am R&D-ing now. This means i can write 10K lines of code, test it and discard it and rewrite it all again.

(My only team is code automatization. I think a teammate will only slow me down right now. Maybe in the next stages of my project, i could search for help, but never in the same field like mine. I mean a coder and an artist is acceptable teaming. It is connected, but not close enough. Or a gfx coder and a physics coder. Everybody minds its own distant code. If two people write in the same VS project, this is Sparta!!!)

Juliean
Juliean

NikiTo said:
When you are one of two male kids in the family and you still have not finished your world-changing project, and your brother bought a car, got a mortgage already from working day by day, you realize how people treat you like a loser and they treat your brother as a successful man. There is when a person realizes that, doing what you enjoy and focusing on the journey, not the destination are teachings that don't quite work.

Then you should stop worrying what other people think of you. "Focusing on the journey" ofc doesn't work if you are looking on validiation from others. Learn to take motivation and you from within yourself, instead of your peers. Don't be jealous of what other people have. Sure you can strife for success or betterment of your situation, but in the end, only do those things they are really important for you, and not because of what society, peers or even family might think of you.

NikiTo said:

If two people write in the same VS project, this is Sparta!!!

Then how do companies manage to produce (code) projects with a scale that you can only dream about?

NikiTo said:

I am focusing on my project 24/7 now. Living a minimalist life in order to not need to work, and to be able to program the whole day. I have to mix it with YT and chatting, because if i focus too much i see nothing. This is my off time, but it is mixed with the codding. What pisses me a lot, is to be coding a whole day the wrong thing, go to sleep, and at the next day looking at the code in the morning and realize it needs to be deleted, because i wrote sh-t the previous day. When I focus too much, I lose the big picture. I could code 100 lines of code, test is, debug it and find at the next day, it is logically worthless. It works, but i delete it. Lost time.

Not mentioning 95% of the time, i am searching for bugs made of a single character typo. I typo is not like an error because i am stupid. A typo is because i got too much or not enough focused.

Then there are the false positives. I search days for the error inside the spaghetti, because i assume the error is in the most complicated chunk of the program. And then i find out the error was not in that program, but in the program that visualizes the result for me. The result was correct but it showed it wrong on screen.

Weren't you rabmling about doing everything in assembly and how great that is in other threats? Going from that, and your descriptions here, maybe you should try something else (higher level language ie.), because I can tell you for a fact that this is not how ones coding routine must look like. It doesn't for me, it doesn't for my colleagues.

@throwawaydev :
I can only give you a similar advice, in regards to your “unrealistic” goals: If you want to persue those ideas and dreams, you need to stop worrying about results. Or lets phrase it otherwise: You must make a simple decision: Do you care about doing whathever it is you want to do, or do you want to have something that is finished? Depending on the answer, you have different paths to chose.

I am also someone who pretty much only picks projects that are way too large for my own good. My main game at the moment is an action-rgp (2d atleast) with 30-40hours planned playtime. I managed to make 8hrs in Rpg-Maker, before I became pissed of that program and decided to port it to my own game-engine. A project which has been running for the last 7 years, and is way too large in scope that I could have ever imagined getting there. but now, after all that time, its starting to get really producitve. You know how I got that far? I didn't bother thinking about when or how I'll get certain results. I just added, piece by piece, content (in case of my game) and functionality (in case of my engine). And I fully enjoyed each and every moment, because thats just what I wanted to do. Will I ever finish the game to the full extents. Who knows. Probably not. Will I stop developing it? Nope. I take breaks from then an there, some even for a few months to half a year. But I always come back.

Now thats of course not the only way, and some might say its a waste of time because I effectively have no finished project. Screw em. Think about it, OP. If all you really care about is having a finished MMO of your scope/desire, then I think thats not a realistic goal. If you instead really want to *make* an MMO, and can find enjoyment in the process, then sure, keep doing it.

NikiTo
NikiTo

Juliean said:
Then you should stop worrying what other people think of you.

I try it, but tell to a smoker to quit smoking…
It is hard to swim in water and ignore the water. If you completely detach from society and the common goals, some psychiatrist will put you on strong medication. Because we swim in water, pretending we are birds is hard.

Juliean said:
Then how do companies manage to produce (code) projects with a scale that you can only dream about?

Putting a comment in a project in Github pissed up my teammates so much, they kicked me out of the project and i was kicked out of school too. In another school a teacher told me “You can not have this hairstyle and expect for us to allow you to study in our Great Awesome Country”. So they kicked me out too. (This was my incompatible hairstyle - https://www.youtube.com/watch?v=a5uQMwRMHcs ) If Einstein lived today, he would be not able to graduate. A matter of looks…

If you made things like family, studies, career work for you, please, consider yourself a very lucky person! None of my buddies managed to marry. A dozen of persons live on soft alcoholic drinks, and will never reproduce, because they missed their chances. Please, consider yourself happy, if you got a family and did not divorce before you sent your kids to high school.

Juliean said:
Weren't you rabmling about doing everything in assembly and how great that is in other threats? Going from that, and your descriptions here, maybe you should try something else (higher level language ie.), because I can tell you for a fact that this is not how ones coding routine must look like. It doesn't for me, it doesn't for my colleagues.

https://www.gamedev.net/forums/topic/706243-end-of-the-world/5423472/?page=10

“I abandoned it because of lower productivity compared to HLL. I use JS to develop my ideas. Then i pass it to C++ + HLSL. In the end I could replace C++ with ASM, but better directly HDL.”

I've lost years with ASM, but not anymore. ASM is still great. don't get me wrong, but i don't need it now. My shaders take 60 seconds to compute. And everything in the system waits for that data to be ready. Optimizing the CPU-side in this situation makes no sense for me.

JoeJ
JoeJ

You should look at ‘lost years’ in a different way. The time spent to learn something is not lost.

Juliean
Juliean

NikiTo said:
I try it, but tell to a smoker to quit smoking… It is hard to swim in water and ignore the water. If you completely detach from society and the common goals, some psychiatrist will put you on strong medication. Because we swim in water, pretending we are birds is hard.

I'm not talking about completely detaching from society. I do go out sometimes, even though my freetime largely revolves around gaming and programming. Its just that I learned not to feel required to pretending to be social, or feel too awkward that I'm not that much of a peoples person. That was my “enlightenment”, being able to interact socially with people, but not feeling forced to it.

NikiTo said:
Putting a comment in a project in Github pissed up my teammates so much, they kicked me out of the project and i was kicked out of school too. In another school a teacher told me “You can not have this hairstyle and expect for us to allow you to study in our Great Awesome Country”. So they kicked me out too. (This was my incompatible hairstyle - https://www.youtube.com/watch?v=a5uQMwRMHcs ) If Einstein lived today, he would be not able to graduate. A matter of looks… If you made things like family, studies, career work for you, please, consider yourself a very lucky person! None of my buddies managed to marry. A dozen of persons live on soft alcoholic drinks, and will never reproduce, because they missed their chances. Please, consider yourself happy, if you got a family and did not divorce before you sent your kids to high school.

Where do you live, and what kind of school would kick someone out because of that? I'm really thinking there is another side to the story, or you live in a really bad environment. Or I live in a privileged one in austria, but something like that doesn't really happen.

Oh, and I don't have a family eigther. Probably will never marry, definately will not reproduce (don't want kids). But again, thats my point - I don't care. Not anymore at least. I learned to appreciate the things I have, not cry after the things I havn't.
Ok, at least I got my carreer settled, so that I can support myself and even have some spare money left. (and work at least in the field I enjoy, being able to use my programming skills to a certain extent.) But thats all I need. I don't need to earn tons of cash, or work at my absoluete dream job. I prefer having a bit more time on my own, for my projects and my games. And I'm feeling damn good about it.
Given all that, some might view me as a failure. Again. Screw em. I'm fine living the way I do, and thats all the matters.

NikiTo said:
“I abandoned it because of lower productivity compared to HLL. I use JS to develop my ideas. Then i pass it to C++ + HLSL. In the end I could replace C++ with ASM, but better directly HDL.” I've lost years with ASM, but not anymore. ASM is still great. don't get me wrong, but i don't need it now. My shaders take 60 seconds to compute. And everything in the system waits for that data to be ready. Optimizing the CPU-side in this situation makes no sense for me.

60 seconds for a shader is kind of rough. But otherwise, what I was hinting at was more the fact that you should try to optimize your productivity before even considering optimizing performance. lf I compare it to my current situation, in 7 years of developing my engine I got to a certain point where I now can be really productive. If I spend 2x the time in trying to optimize things instead of getting robust, productive codebase, it would take another 7 years to get to where I am now. Productivy > Performance all the time. Performance is “fast enough” at a certain point. So if you are still having troubles in C++, why not give C# a shot? It has a few downsides compared to modern c++, but it also has lots of neat features that could make you a whole faster.

JoeJ said:
You should look at ‘lost years’ in a different way. The time spent to learn something is not lost.

Also, pretty much this.

NikiTo
NikiTo

@Juliean I lack reproductive instinct. I don't feel the desire to leave to this world another clone of me. I don't consider myself pretty enough as to activate my narcissism and want to give to this world another one of "beautiful-me". Some father with some bad visual feature looks at his newborn child and sees the same bad visual feature and is glad that his child looks like him. But he doesn't think that his child could have a tough time in school with that nose. I don't understand that narcissism without foundation in most of people. I want my child to look 10/10, not 6/10 like me.

I lack that reproducing need, but i do want to feel loved. My only chance is a robot or VR. I am working on it now.

You should be considering yourself very lucky for living in Austria.

I felt for the last few months that copying-pasting around in the API sucks. I have to update the very same thing at many places inside the API of DX12. So few days ago i just automatized it a bit. Now i just give it the path to the shader and the code does the repetitive writing for me. Barriers were pissing me off. So now the code takes care of that too. It adds a R/W state to the resources and scans every shader for .Load and .Store to that resource. So it takes care of the barriers too. It helped me with the anxiety of having to update the very same thing in three places in the code. And less anxiety is faster coding.

60 seconds is fine. Shaders are immensely optimized. It is 60 seconds on the integrated GPU on a 500$ laptop. So it is fine. On a top tier Desktop GPU it would rocket up.

I liked C# a lot. But switched to C++, because of DX.
In order to speed up things i read new info vaguely. This has its pros and cons. I first read a text, reading chunks of 4 lines of text at once to get a superficial idea of “is this what i need?” and if yes, i reread it again carefully. So sometimes i could read something wrong or skip over a good source of info. But i have not the nerves to read 1mln pages of info about coding only to master C++. And yes, i use C++ at a very basic level. I could copy what i write in C++ to C# and it would work mostly. Only basic syntax, nothing fancy. I don't want to become a wizard of no language. Not anymore.

Juliean
Juliean

NikiTo said:
I felt for the last few months that copying-pasting around in the API sucks. I have to update the very same thing at many places inside the API of DX12. So few days ago i just automatized it a bit. Now i just give it the path to the shader and the code does the repetitive writing for me. Barriers were pissing me off. So now the code takes care of that too. It adds a R/W state to the resources and scans every shader for .Load and .Store to that resource. So it takes care of the barriers too. It helped me with the anxiety of having to update the very same thing in three places in the code. And less anxiety is faster coding.

Any specific reason you are even using DX12 and not DX11? I wanted to get into DX12 but have it put aside for now since its too complicated for the gains.
I personally also use a high-level abstraction layer so over the API as well as the shaders, so I optimally only have to implement every bit of API-code once.

NikiTo said:
60 seconds is fine. Shaders are immensely optimized. It is 60 seconds on the integrated GPU on a 500$ laptop. So it is fine. On a top tier Desktop GPU it would rocket up.

Wait, are we talking load time? That should not depend on the GPU, as compilation is done on CPU side. You should consider caching the resulting compiled shader on disk, this brings the required load time basically to zero once the shader has been loaded once. 1 minute per startup is really much, just think how much time you lose in one day if you start a few times.

NikiTo said:
In order to speed up things i read new info vaguely. This has its pros and cons. I first read a text, reading chunks of 4 lines of text at once to get a superficial idea of “is this what i need?” and if yes, i reread it again carefully. So sometimes i could read something wrong or skip over a good source of info. But i have not the nerves to read 1mln pages of info about coding only to master C++. And yes, i use C++ at a very basic level. I could copy what i write in C++ to C# and it would work mostly. Only basic syntax, nothing fancy. I don't want to become a wizard of no language. Not anymore.

Well, thats kind of a shame. Its not about mastering C++, but I would go near that language if not for the constant improvements made in the latest standards. The 1 minute spent reading can repay itself very quickly. Teach a man how to fish, and what not.
I would say its your choice, but then you shouldn't complain about not having enough time or getting things done quick enough, if you do not take time to optimize your workflows.

NikiTo
NikiTo

@Juliean 60 seconds execution times.

I really don't need a good understanding of C++. Lots of the extras of modern language were built with large teams working together in mind.

In the end, it should compile to the very similar code.
And as a standalone coder i don't need most of the extras.

I chosen DX12, because it was the latest tech at the moment and keep with it now. I didn't want to be an AS3 programmer sinking on board of the ship of Flash.

Juliean
Juliean

NikiTo said:
@Juliean 60 seconds execution times.

Now I'm confused. Are you writing a raytracer or something.

NikiTo said:
I really don't need a good understanding of C++. Lots of the extras of modern language were built with large teams working together in mind.

No? Where did you get that idea. I can tell you that almost all of the modern features are extremely valuable no matter if you are a single programmer or a team.

NikiTo said:
In the end, it should compile to the very similar code. And as a standalone coder i don't need most of the extras.

You seem to have an unnatural fixation on performance and generated code. The new features aren't there to produce faster code, but to boost productivity. They allow you to write less to code to achieve the same thing, reduce sources of errors (what you seem to be complaining about a lot). To bring it down to your example “if you are 16 years old, an 80 year project is not possible.”. If you took the time to learn and embrace all the new features, this would easily bring down the time of such a project to 40, maybe 20 years. I'm assuming you are using an pre-c++11 featureset, which is really bad.

NikiTo said:
I chosen DX12, because it was the latest tech at the moment and keep with it now. I didn't want to be an AS3 programmer sinking on board of the ship of Flash.

DX12 is not meant as an replacement for DX11 though. Its purpose is to give programmers more possibilities without the driver getting into the way, thereby reducing CPU load (which isn't an issue for you as you said yourself). If not for that, you continue using DX11 until there is a functional replacement that isn't as hardware-near.

Well, sorry if that sounds rude, but your only problem seem to be making bad decisions in how to work and what tech to use. Do you really only care about generated code and performance, and not how efficiently you are programming? Work smart, not hard.

NikiTo
NikiTo

What if i am used to declare functions inside functions, but C++ is a donkey at this?
If there is something i can not do without some fancy C++ feature, i would spend a whole day of googling in order to learn that new cryptic feature. So far i haven't feel the need to learn anything new in C++.

What language you use at home? German or English?

Why don't you just say to your buddies: “am'ngri”?
Why do you tell them “Ich bin am Verhungern”?

Why are you using the bezirksschornsteinfegermeister german language at home?
Isn't it because you are used to it?

I'm fine with my standalone C++ grammar skills.

If you use global variables, in a team, you are a death body. The program does the same, but you are kicked out of the company. A standalone person can do it. No problem.

After being kicked out of the freedom-of-hairstyles-intolerable school, i entered another one. And while in the first school coding it all in one single line of code was considered cool, in the second school, using ternary conditional operators was completely banned. If you put more than one condition in the loop declaration you are penalized.

if ((newPosition += step) < 200) — penalized by death sentence.
[i++] — punished with testicular electrocution.

I really want to stay away from -

“I kicked you in the teeth because you named your method "getSomething". This is C++, not Java! And if you start a variable name with a capital letter again i will shoot you in the d**k”.

I really try to stay away from all this bad show. I just code my stuff. Minding my own business. Let me out of radical wars.

For the time i figure out if some new fancy extra in C++ can help me or not, i can do the same with basic syntax.

Most of the time i can't feel an extreme urgent need for the latest syntax candies. And it is a fact i can fake it all with basic syntax. If i can not, it is only because C++ is inherently bad at the things i try to code.

I understand why you protect your own reality. I protect my own reality too. It is about opinions.

There are many realities out there -

JoeJ
JoeJ

Assumption: You have wrong prejudges against C++ because you have been on terrible schools.

NikiTo said:
What if i am used to declare functions inside functions, but C++ is a donkey at this?

You can do his, and you do not even need to look up any new language features:

void Function()
{
	struct Tools
	{
		static int Add (int a, int b) {return a+b;}
		static int Sub (int a, int b) {return a-b;}
	};
	
	int a = 1, b = 2;
	int c = Tools::Add(a,b);
}

(this is legal since C++11 IIRC)

Ofc. using lambdas is much better. Less code and much more options.

It's one of the things that boosts productivity a lot, similar to templates. It allows to implement logic independent from data, so you can reuse the same logic often without copy pasting introducing bugs.

JoeJ
JoeJ

… copying an example using lambdas from my code:

// lambda - which does something

			auto Combine = [this, cell, &weightSum] (const SceneCell *parentCell, const int parentChildVI, const int vI, const float w)
			{
				//RenderPoint (cell->mesh.GetVertexPos(vI), w, w>=1, w<=0);
				//RenderPoint (parentCell->childMesh.GetVertexPos(parentChildVI), w, w>=1, w<=0);
				vec cross = parentCell->childVectorCrossfield[parentChildVI];
				cell->vectorCrossfield[vI] += cross * w; // todo: need to convert to complex form? (normals might differ at the boundary)
				weightSum[vI] += w;
			};


// reusable function which does complicated iteration i do NOT want to write multiple times

// it iterates stuff and executes the lambda in inner loop, similar to how a ugly callback would work

			IterateParentLinearCombination (cellCoords, cellLevel, Combine);

Here is the complicated iteration stuff, just to show how much work i have saved:

		template <typename Functor>
		void IterateParentLinearCombination (const int cellCoords[3], const int cellLevel, Functor &functor)
		{
			int cellIndex = GetCellIndex(cellCoords, cellLevel);
			SceneCell *cell = GetCell(cellIndex, cellLevel);
			if (!cell) return;

			float scale = 0.5f / lods[cellLevel].cellScale;

			int originParentCC[3];
			GetParentCellCoords(originParentCC, cellCoords);
			int cI[3];
			for (cI[2] = -1+(cellCoords[2]&1); cI[2] <= 1-!(cellCoords[2]&1); cI[2]++)
			for (cI[1] = -1+(cellCoords[1]&1); cI[1] <= 1-!(cellCoords[1]&1); cI[1]++)
			for (cI[0] = -1+(cellCoords[0]&1); cI[0] <= 1-!(cellCoords[0]&1); cI[0]++)
			{
				int parentCC[3] = {
					originParentCC[0] + cI[0],
					originParentCC[1] + cI[1],
					originParentCC[2] + cI[2]};

				const SceneCell *parentCell = GetCell(parentCC, cellLevel+1);
				if (!parentCell) continue;

				int parentCI = GetCellIndex(parentCC, cellLevel+1);

				vec center = GetCellCenter(parentCC, cellLevel+1);

				const VolumeMeshing::MeshResult &childrenSurface = parentCell->childSurface;
				const HEMesh &childrenMesh = parentCell->childMesh;


				for (int i=0; i<childrenSurface.merged_vertex_UserData.size(); i++)
				{
					int vertexCellIndex; int vertexIndex;

					int begin = childrenSurface.merged_vertex_duplicateList[i];
					int end = childrenSurface.merged_vertex_duplicateList[i+1];
					if (begin!=end) // duplicated boundary vertex
					{
						for (int j=begin; j<end; j++)
						{
							UnpackVertexLink (vertexCellIndex, vertexIndex, childrenSurface.merged_vertex_userData_Duplicates[j]);
							if (vertexCellIndex != cellIndex) continue;

							vec diff = childrenSurface.merged_vertex_pos[i] - center;
							float w = fabs(diff[0]);
							w = max(w, fabs(diff[1]));
							w = max(w, fabs(diff[2]));
							w *= scale;
							w = 1.0f - max(0.0f, min(1.0f, w));
							
functor(parentCell, i, vertexIndex, w);

							break;
						}
					}
					else // unique interior vertex
					{
						UnpackVertexLink (vertexCellIndex, vertexIndex, childrenSurface.merged_vertex_UserData[i]);
						if (vertexCellIndex != cellIndex) continue;

						vec diff = childrenSurface.merged_vertex_pos[i] - center;
						float w = fabs(diff[0]);
						w = max(w, fabs(diff[1]));
						w = max(w, fabs(diff[2]));
						w *= scale;
						w = 1.0f - max(0.0f, min(1.0f, w));
						
functor(parentCell, i, vertexIndex, w);

					}
				}
			}
		}

You see that's a lot of ugly crap. But i need this iteration pattern many times. It's about transferring data from low detail geometry to high detail geometry.
I can use this code for crossfields, wavefields, colors or normals, a scalar roughness map or whatever else - just need to write the small lambda for each usecase.

I don't see what Linus could eventually dislike on this. Productivity boosted, no need to write bloated callbacks, source of error reduced. It's nice stuff.

EDIT: accidently deleted the functor call when deleting comments, added this.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.