2019-07-17 00:20:54

You've got a great project in the works. Everything is going perfect. Your alpha testers love it. The mechanics work. Aaaaaand then comes the dreaded crash.
You all know it, where you, for one reason or another, completely lose interest in the project, and scrolling by the code gives you a headache. You don't write code for this project in days, maybe even weeks, potentially even months...
So what do you do to recover or at least get moving again? This has happened to me far too many dozens of times to even begin to count projects I've deleted or archived away for one reason or another. Lol!
Thanks for reading this short topic!

2019-07-17 00:38:11

For me, the trick is to get more people involved in the project. Like ask a friend of yours to write the story, a second one to design the sounds and a third to create music for your project, gather graphics or something else. As soon as multiple people are involved, they can motivate each other respectively. At least that is what keeps my motivation up. Its totally normal to lose interest of a project after months of hard work, but you should be able to recover from those downtimes if other people are involved who are still motivated and give feedback and do something for the project too.
Best Regards.
Hijacker

2019-07-17 06:54:17

hi,
these happens to me as well!. I will be demotivated and I don't know why. (maybe I'm not so serious about my projects)?

2019-07-17 13:25:23

Hi.
I've also (alongside maybe every dev in the world) experienced this. I've experienced this so many times. I'll be keeping an eye on this topic, since I'm also looking for a solution.
Sitenote: If you get other people involved in your project, you better make dam sure, that they don't crash at the same time as you (since that can, did for me, have the opposite effect).

If you like what I do, Feel free to check me out on GitHub, or follow me on Twitter

2019-07-17 16:57:35

Oh boy, has this happened to me quite a lot. Let's see what projects I have archived on my computer thus far:
The FreeOS project (mainly because of some virtualization issues and the fact that only two people -- Ironcross32 and I -- are even working on the thing)
FFI bindings to Bass in C++and Java, and FMOD bindings in rust
The "cloud management console," a project I started with the idea of creating a centralized, modular management console for all your cloud services in one place
The "CVE utilities," a set of utilities that would allow you to download, (possibly) report, and show CVEs when you heard about them or found out that your server had several (i.e. with pkg-audit on Arch). Fell apart because parsing the CVE database is a pain in the ass
There are a lot more. I have one that was going to be a successor to TeamTalk but I was the only guy working on it, and I had dependency management problems. If more people would help out with the code, and I could get adev team going, I'd have so much fun getting back into that.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-07-20 20:20:20

@1: Be happy that you reached the alpha stage. big_smile
But seriously, this happens to me too with such a frequency that I'm sometimes thinking if it isn't only stage in which my projects end.
On my computer, I have a big Development folder, which is divided to subfolders according to target platforms e.g. Android, Innosetup, Web, Windows, every that subfolder has other subfolders according to programming language e.g. C++, C#, Dart, Python, etc. and every of that subfolders has at least two projects in case of the least used languages and about 10 in the more frequentones.
When you take in that just on Windows I have folders for about 12 languages and that for example BGT folder has about 70 projects, then the total amount of projects is.... big. big_smile
Of course many of them are just small programs for one thing or support code, but even they cost attention. And i could name at least 10 bigger projects, which I wanted to have complete but was lazy to finish.
So yes, motivation is unstable thing and... isn't enough to finish a bigger project. At least in my case. smile

My personal solution for this problem is to explicitly specify, when and what to do. I can work even on few projects at a time, that's not a problem like I thought before, they all just need to take equal attention.
And the motivation will return with progress, that's my experience. It isn't something you should rely upon when developing. You will have it sometimes and sometimes not. Be happy in case you have it, and believe that it'll return when you doesn't.
I value my projects by their importance for me and not motivation, that's how I avoid motivation problems.

That's at least my personal solution.

Best regards

Rastislav

2019-07-25 17:13:03

I have the same exact problem. I thought I could've created something useful, but when I'm facing a serious difficulty I just sometimes abandon, sometimes even delete the project. But I found out that the better I am at programming, this is happening less and less often

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2019-07-28 04:18:46 (edited by Zarvox 2019-07-28 04:57:36)

This post is going to be extremely long, and takes forever to get to the theme, but if you can read all of it, thanks for taking the time.

A year ago I wouldn't have any rights to write on this page, but in this one year I have finally turned my failures into success.

I've only worked with bgt. It's simple, frustrating, and outdated. But it's what I've learned so I'm using it for my work. I first looked at it in 2015 with Mason's bop it project. I quickly learned how to work basic menus and what int and string variables were.

Like any 15 and 16 year old after seeing coding, the dreaming began. I had several ideas, most of them being map games. So I started a whole bunch of things in 2016. I was mainly interested in map games, and when I got map code in 2016, everything took off.

Or did it? No. It was all a massive failure. I didn't know shit. And I kept looking at it, and thinking that, I understand this now, I can try again. Despite being able to change the map layout and adding a third dimension, I couldn't do anything successfully. Even adding items or modifying them was too hard.

So after all of these failed projects in 2016 and part of 2017, I said fuck bgt. Fuck coding. I don't remember the last time I stopped working with it was, maybe it was even in 2018 when I finally stopped. but quitting bgt... wasn't permanent...

Stated previously, most of my ideas were map games. But there was one idea, that I had that was not dealing with maps, but I never linked it to me wanting to make it a project. It was an idea untouched by my dumb ass to turn it into reality. Well, that is until last November.

I always thought it would be cool to have a Rhythm Rage level creator, but by some miracle my dumb ass didn't think I could do it like a boss, it was never payed attention to, probably because it was so royal, it didn't even give me the chance to fuck it up. After a long break from bgt, or maybe a few months, I said, the hell with it. If I can't make a map game, let's try something else. I didn't care if it worked or failed, I didn't care if I could do it or not. The idea came. If I can't do it, who cares?

Only one problem... I didn't know how to write a program that literally just plays a sound when you press space. No joke. In 2016 I wanted to make a program that when you open it plays a sound when you press space. The sound would be written in the code. So it didn't require a path directory finder or anything. Here it was in November of 2018 and I still couldn't do that.

This morning a woke up and wrote the script in 14 lines in 2 minutes, maybe even 1. I'm not a dumb ass anymore! Hold on bitch, you still are. A big one!

Anyway, long story short, I learned how to play a sound, learned how to write to a file, that was self explanatory, and learned a shit tun about arrays for the level creator. That project turned me from a dumb ass, to having a successful project, and having some knowledge of bgt.

At the same time as starting the level creator, I started another project, one that was also different from anything else I have done. It would be like rs games. A turn style online game. Did it fail? No. But did I do it correctly? Absolutely fucking not. I didn't know how to use classes. The only reason it didn't fail is because I copied and pasted the network code from the bgt manual and it worked.

So with the level creator, I continuously worked on it. There was a small break between versions 3 and 4, but for the most part it was always active. Even today it is still active. I have done a few things since the version 7 release.

This other project was active for 2 or 3 weeks. Why? Because instead of making classes, I made each class a set of variables leveled with different starting letters. So with 4 players I had 4 game menus, 4 music menus, and 4 wheels. And the worst part, 12 blocks of receive code. I loved the project, but it was ridiculous, so I had no choice but to stop working on it.

But I loved that project so fucking much. I just couldn't use classes. So I focused on the level creator. And finally got around to asking on the forum if someone could help me rewrite this game.

Ivan Soto offered to write it, but we didn't get anything done after a month. But I still want to thank Ivan for offering to rewrite it. I didn't want to write another post about it on the forum, especially since someone already offered to help, so I said, it's either have Ivan's help when he is available, learn to rewrite it myself, or give up on the project. I loved it too much to give up. And if I was able to learn a little more about classes, perhaps I could reduce the amount of work for Ivan. So I read the classes section in the bgt manual a few times, and wrote a forum topic about classes and within 2 days I understood how to use them. I had the whole game rewritten by myself in 3 to 4 days. So that project is now active along with the creator.

Notice how I haven't mentioned anything about maps? I don't plan to work on maps any time soon. Here is the theme, my answer to the question of the topic.

part 1
If you are a beginner like me, this advice will help you go from not knowing shit to knowing a shit tun.

Try new ideas. It sounds like it wouldn't work, but different types of projects teach you different things.
Menus taught me how functions work and how to call functions.
Bop it style games taught me a tun about variables and how to do key presses.
Maps taught me more about variables and a tiny bit about classes.
The level creator taught me about sound playing, conditions, writing to a file, string operations, arrays, and making arrays from files.
The network project has taught me how peer to peer connection works, and a shit tun about classes.

Another thing to do is recognize your limits of knowledge.
For 2 years I tried working with maps, denying that I was incapable of understanding and working with these games. It is simply too advanced for me. There are too many things I don't know. Even to this day I don't touch map code, because I'm not ready for it.
If you have tried something for a year or 2 and it is still failing, try new types of projects. Learn from those and perhaps one day you can come back with the knowledge you need to begin working with that type of project. I'm still miles away from maps.

The third thing to do: make your own scripts.
Yes, I know exactly your mindset. If I don't have the knowledge, how can I make my script? First use examples from all sorts of types of projects and make a script of a type that you find you understand the most, or do what I did and learn how to play a sound first and then go from there. Start adding variables to it, and build your own script for a project.
You can use the foundation references in the bgt manual to learn about new types of objects and operations. I use it constantly.
I won't lie, it's not easy to start your own script, and it's even harder to get it working without getting 20000 errors thrown at you. I didn't understand that there were already made objects in bgt at the time, so I tried using sound pool on my own and that didn't work. Try using already made objects for your own scripts.

Lastly: ask on the forum when you are stuck.
I can't count how many times this forum has saved my ass. I have learned a lot from here. Without the developers room I wouldn't have 7 eighths of the knowledge I know. You guys are awesome!

These 4 things will help your motivation keep going. They are all things you have heard before. I've heard them a billion times and didn't understand how any of them were possible. Just start trying different types of projects, and start from a basic concept like playing a sound, and add more things until it turns into what you want, but be aware of your knowledge limits.

You will know you did something right and you have taken the right step when you suddenly start to understand recognizing knowledge limits.

part 2
Ok, so I have 2 successful projects now. How the hell did the idea and motivation for these successful projects happen?

For the level creator, it was just an idea played out in my head for years. I imagined doing an action, and then pressing b to type in the fields, or maybe being able to calculate the distance between 2 points and using that in the level creator. I didn't think too much about it because I knew I couldn't make it. But one day while coding a level I told myself, I can either keep coding a billion levels over and over, or I can code a program once and have levels finished without doing math and checking spelling and syntax. That question got my motivation going.

For this current project I am working on along side of the level creator, it all started from a dreidel game on rs. Yes, a freaking dreidel game! My friend made a custom currency for the game. The currency was a reference to an amazing game that I am constantly playing. That idea of using that reference was so powerful, I had to write an online game that was a parody of the original. I wasted no time. I didn't care that I didn't know how to use classes, I just made it. And for the time being, it was great, it was fun, it was doable. But as I added the player 3 and player 4 sets of variables, I realized how ridiculous this was. The motivation was always there to finish it, and it killed me that I didn't know how to rewrite it, but then I asked myself the question: what are my options? Wait for Ivan to do everything, start learning what you can, or give up on it? So I started learning how to use classes.

Heart of Theme:
Questions are powerful. They change events in history everyday. Each major decision has a powerful question. If you are stuck with motivation but lack of knowledge, or knowledge but lack of motivation, find the powerful question that will force you to get the work done.

Thanks for reading my insanely long post that was only half relevant.

2019-07-29 22:50:32

Hi,
I know it's bit ot here, but @8: where did you get stuck on maps? yikes
Maps aren't hard to make at all, of course, you must know classes and arrays first, work with files is good too. But the rest is quite simple until you want some extra wild shapes.
Only problems I had with maps were in Blindcraft, where it was required to handle really big arrays in realtime when player was moving to reload border chunks, what included selecting which to save, serializing them, compressing and actual saving and a reversed operation for loading newones. It wouldn't be probably a problem today, but in that times, with my knowledge about C++, there were very unpleasant lags. smile
But I managed to resolve it. I've used 4 cores instead of 1 to speed it up, made some optimalizations and lowered the time to acceptable value.

I can give you some example codes if you want, i was teaching one guy this things some time ago, may be I still have it somewhere.
Of course new topic would be good for it, so we don't spam thisone. big_smile

Best regards

Rastislav

2019-07-30 01:19:12

@9 Didn't think the title of this thread was, "Let's shit on people who know less than I do". Please take your seat in the peanut gallery and stay silent if you're gonna just bash people for lack of knowledge.

Facts with Tom MacDonald, Adam Calhoun, and Dax
End racism
End division
Become united

2019-07-30 01:59:45 (edited by Rastislav Kish 2019-07-30 02:00:39)

@10: I'm not bashing anyone, I've just asked him what he had problem with, assured him that what he wants to achieve is most likely much easier than he actually thinks and offered him my help. I don't see anything bad on it. But 100 people 100 opinions.

Best regards

Rastislav

2019-07-30 04:00:45

yeah you did it with a condescending little chip on your shoulder as usual.

Facts with Tom MacDonald, Adam Calhoun, and Dax
End racism
End division
Become united

2019-07-30 12:07:46

@9 I know how to do maps, I used mason's zombie war code, turned the map into 3d, and can build my own maps. What I meant was map games: i.e enemies, weapons, items, jumping, etc. The map themselves are easy yes, it's the stuff that goes on the maps that I stuggle with. I could make maps all day, but no point if I can't put anything on them...

2019-07-30 18:40:19

Maps are one of the few things I am ok with, so I could probably help you get a map system working and usable.
What I do when designing a map system is use arrays containing a list of tiles, (dictionaries=eek) and I make function calls that return the current tile at certain coordinates.
Then, in your enemy, player, whatever, walk timer, you check the current coordinates, and react to the current tile that is found. Is it a wall? Is it gravel?
Ideally, you would want to make the function global so you don't have to define it multiple times. I did that with one of the first map systems I made and eek! Now just imagine if you have different amounts of step sounds for different tiles, the fun you would have if you didn't! Ok ok I'm way off topic now. Lol.
When inserting tiles, if your going about it this way, you will want a function that accepts coordinates and then spawns the specified tile at coordinates you told it to.
If your going the more traditional way, where you use one big ass array for your hole map, it's slightly easier though it is sort of as involved. Just remember to resize all of your dimensions and whatever you do, ensure your player doesn't go beyond the map's borders. Lol!
I could make you an example of a little map system if your still having trouble. Just let me know smile

2019-07-30 18:53:06

Hi,
@13: so you have problem with handling the actual game run? I mean, items, enemies, and other stuffs which are generated dynamically on the map are just records in memory, where their position, state and other things are saved, and it's on algorithms to do something with them.
There is usually one function called Game loop, it's being called periodically during the gameplay in small time intervals (like 50 ms) and its role is to activate various game algorithms, like catching and recognizing keyboard shortcuts, but also calling for physics update and for enemies movement.
Clearly said, like you're checking if key is pressed in a loop, so you don't miss it when it actually happens, you also need to call enemies to look around them and move, items to check if they still have something to be on, or just check for events like when a player stands on a item, if you want it to be grabbed automatically. Everything you add to the game loop will be done constantly, so it'll be live.
If you want to try it out in a project, I think it shouldn't be that hard to think out some examples. Like try to make an 2d environment with few generated items, where you can try out, how to do fps, how to work with items, what is required for their management etc. Then you can add some enemies, like in Super egg hunt for example and play with their configuration etc. Then you can add some weapons, so you can defend yourself and such continue, making a relatively complex game from just a concept.
This is of course just what I now thought out as an example, you should give yourself one, which you'll consider funny to do and to play with. For example, my first project with a real map was Titanic simulator. It was a simple game, with 200 x 200 map size, where bottom left corner and upper right one were ports and your task was to sail from one to another with Titanic. There were of course many icebergs between them, generated randomly on game start, which you had to avoid. heh, when I recall, how I was dealing with it, it would be quite funny today, but for my defence i can say, that I had no zombie war or any other Mason's code, I was doing everything myself from the scratch in Delphi. And it worked, although i had a very stupid alert system, so it was almost impossible to go cross the sea directly without crashing somewhere, but that was primarily my lack of creativity because I wasn't able to think out any better announcing system. But the game's core worked as I wanted it to work.

So I would say, don't worry, just keep trying it. Don't have a respect. I made titanic simulator few times from scratch, because although the game worked, I didn't like the code and every time I was writing it again, i found something to simplify, something, what was unnecessarily long or wrote on few places instead of one.

If you're wondering about extendability of items and enemies, you can use inheritance and interfaces here to simplify your work, that could resolve your problems of adding things.

If you want to discuss this further, I can send you some examples privately, or you can make a public topic here, so also others can help. or you can try to be inventive yourself and make something on your own, even when it won't be perfect on first try. Everyone has methods, which suit him best, and if I have something what will save someone's time, I will be glad to provide it.

Best regardss

Rastislav

2019-07-30 20:21:38

I don't think map games re one of my interests right now, but if I get back into the spirit I will ask around. This forum has provided a lot of help and resources, so I know if I rally wanted to I could get it done

2019-07-31 13:14:48

It might also be coding stile: if you can't find the cause of a crash and looking at your code is hard, maybe the design is not entirely optimal for this project. This is also why the bgt manual focuses so heavyly on proper design in the example games, if you just start coding, and later on the game design changes, it can be very hard to change your code. Basic example: you have a sidescroler. At first, you make a simple variable playerx. Later on, however, you add enemies, multiplayer play, and whatnot. Then if you had created an abstract class entity and subclassed player, npc, and onlinePlayer from that superclass you'd have smaller and manageable code. This example isn't entirely correct but I hope you get what I mean.

Roel
golfing in the kitchen