Sign in to follow this  

I feel I wasted time, but I'm trying to make up for it.

This topic is 677 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I had this big project I was working on for a while and now it seems I might need to do something really extreme to my code to add features as I envisioned. I think I'm going to add something called an abstract base class but that's not the important part. I know by adding this I will increase the time I spend programming the game instead of designing and I feel I've spent too long programming.

 

So in order to produce games I came up with super mini projects that are made with the current engine of my big project.  The big project doesn't really seem to have an end to what I'll include but everything I made for it seems useable. Should I make small games with various updated additions of my big game's engine or  would that be a form of procrastinating on the big project? 

Share this post


Link to post
Share on other sites

What is it that you actually want to accomplish with your projects?

 

I'm also working on a large project where I've had to rip apart large amounts of code and spend a lot of time getting it to work again so I could get something seemingly basic working. The last thing was serialization, before that was collision detection, before that path finding, and before that was the original collision detection that I had. Although slogging through a rewrite isn't really all that fun, I have actually  found it rewarding when it's finally done to my satisfaction and am left feeling free to move on to the next feature. Sometimes I almost feel lost as to what's next as the rewrite has been such a major focus for so long.

I could work on smaller projects and get the details of various game elements sorted out better to pull over into my large project but I don't have to because this is my hobby. I'm not looking to make money, I'm not aiming to be an indie studio, I'm not looking for a job in the game industry, and I'm not concerned about creating or maintaining any sort of following. I'm not even trying to build up a reusable code base for future projects. I just want to have fun working on my endless, directionless project. If I felt different about any of these things, I'd tailor my projects (and their size) to what I would expect would reap the best benefits.

Edited by kseh

Share this post


Link to post
Share on other sites

The original big project used to have a obtainable goal but almost every feature that I wanted turned into something I needed. I think I already surpassed the original goal a while ago. It's been fun but I don't think I'll actually accomplish anything if I don't make smaller side projects that uses the code of the big project. I don't mind endlessly work on thing game adding new features and seeing it grow into a monster size game but I want to put my name on games.

 

This might have something to do with me wanting to celebrate my milestones.

Share this post


Link to post
Share on other sites

I agree with Kseh. Ask yourself what it is you want. I personally spent huge amounts of time working on a project, I did all the physics, the graphics, the AI, added scripting etc etc but I really didn't get a game out of it. I simply enjoyed solving all these problems for the sake of solving them and learning as I go. I have next to no use for the project now and I do feel it's a damn shame to do nothing with it.

 

Now I am slightly older and wiser I prefer your current idea of making mini projects. I think it's good to actually get something done and finished and if you get to reuse all the work you have done then even better. It also looks better to have a bunch of simple, polished projects rather than one unfinished project.

Share this post


Link to post
Share on other sites

How many projects do you have under your belt?  I think that should factor in your decision as well.  If you don't have that many go for the mini projects to get some more experience, otherwise something like this might happen again.

Share this post


Link to post
Share on other sites

In general, try to do more of what you want to do, less of what you don't want to do.

 

You say you want to make a game.  That's what you want, so do more of that.

 

In addition to making a game, do you want to build your game engine? It sounds like that's what your doing, but not enjoying.  

 

 

 

If your goal is to make a game AND to make your own engine for it, then follow the path you are on.

 

If your goal is to make a game, and you don't want to make an engine, then use an existing game engine. Existing engines can knock several work-years off projects, they work out of the box. They have a learning curve since you didn't implement it yourself, but that is true of any technology. Even if you build your own engine you'll have learning curves for graphics libraries, audio libraries, data libraries, physics libraries, etc.

Share this post


Link to post
Share on other sites
What you're describing is known as refactoring. It will happen in any project as you develop it, regardless of if you use your own engine or a pre made one.

If you refactor often then usually it's a less massive job and it might not feel so overwhelming.

Good luck!

Share this post


Link to post
Share on other sites


What you're describing is known as refactoring. It will happen in any project as you develop it, regardless of if you use your own engine or a pre made one.

While I agree with this, I also think it happens to beginners more often unnecessarily.  Thats why I think he should tackle at least one mini-project first, especially since he says his big project is his first project.

Share this post


Link to post
Share on other sites

What you're describing is known as refactoring. It will happen in any project as you develop it, regardless of if you use your own engine or a pre made one.

If you refactor often then usually it's a less massive job and it might not feel so overwhelming.

Good luck!

I've already refactored my code once. When I did this development of the big project started moving much faster. This may have caused me to add more unplanned features to my game. I do plan to refactor my code again after my small project is done. I heard Abstract base classes and virtual function were dope.

Share this post


Link to post
Share on other sites

 


I heard Abstract base classes and virtual function were dope.

They also have a speed penalty so only use them if you need to.

 

 

They should still be learned and used.

 

 

Yes, virtual functions have a speed cost.  On today's systems in C++ and C# it is around 5ns per virtual call, in Java it is around 40ns in post-JIT code on most VMs.

 

However, other options to achieve dynamic dispatch also have a cost. Generally those other options have an equal or greater speed cost.

 

If you need dynamic dispatch, or in other words, if you need a system where you can call a function or a function pointer which can be swapped out based on the nature of the object, then a virtual function is an excellent choice.  It is already written, is built in to many languages, and every experienced programmer using it knows what it means.

 

 

 

You are right that you shouldn't use them when they're a bad fit. For example, calling a function on every object regardless of its need for the function, then it is a bad fit.  Calling it on an array of 1000 objects but only 3 of them implement the function, that is a waste of 997 function calls; that should probably follow an event registration and listener pattern. But if you really do need dynamic dispatch, and all 1000 objects need it, that is exactly what virtual calls are for and they should be used.

Share this post


Link to post
Share on other sites

This topic is 677 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this