Hi all,
I’ve never shared this publicly though it was my intent. I figure to help contribute to Lemmy, this would be a good first post.
I wrote a 2D game Engine in Java as an undergraduate project. It’s fairly simple: audio, sprites, physics, and component based architecture. If you’re interested in writing a small 2D game in Java and have past experience with Unity, you may find this to be as a helpful starting point. I will say this: this engine is not meant for serious game development – I started this project with ‘can I do this?’ mentality.
Though I no longer work on this project, I hope that someone may find use of it.
I think those are often the most enjoyable projects, the ones where you start out just literally thinking “hey, is this possible? let’s find out!”
Having absolutely no intention of ever writing my own engine, I’m constantly in awe of people who manage it. Also I totally misread the author / project names at first and thought you’d called it Zoidberg, so have to admit to a small amount of disappointment there lol.
Thanks for the share!
Absolutely, I’m not sure if everyone else started out the same but I believe that’s what hooked me on programming: the autocracy of trying out a new idea just for the heck of it. I think I’m still yearning for that same level of freedom and moving my career towards a position with more independence.
My first project was “can I build a PHP CMS off the back of the authentication system for this phpBB forum my World of Warcraft guild is using?”. And the answer was “sort of but you’re a newb so it’s gonna break the first time someone puts an apostrophe in their guild application!”
But this is the best way to learn, right? 😄
Certainly, out of curiosity did was there an API to the phpBB forum that you used to build the CMS?
Nope! I’d only just started learning so as I recall, just sort of hunted through the forum code until I found the likely looking functions and then put them in my script (no doubt via some extremely precarious and inadvisable inclusion method, and no doubt it was extremely insecure but sadly the code is lost to the mists of time). There was nobody there to tell me it was wrong so I just experimented with things until something worked!
Certainly did the trick though. Our website ended up great (once the apostrophe thing was fixed) and I started working as a web dev instead of an underpaid office admin!
I think the point of this mostly off-topic nostalgia trip is that I totally agree it’s the freedom of realising you can maybe make anything you set your mind to that hooked me on programming too. I see a lot of kids coming through school nowadays who are just doing it for the money which I totally understand, but they do seem to be missing out on the “actually enjoying it” part. You’ve gotta try stuff, make stuff and break stuff, that’s basically my life philosophy lol.
That’s so awesome! 🙌 Did your college assign this project to you, or was it something you did just for fun?
It actually started as a high school project and became a bigger project for when I started interviewing for internships in college. The high school project was to make a game and we were encouraged to use Java GUI libraries so I made the classic snake game. It had static frame rates, many bugs, out of bound issues, and many violations of OOP, but it was more than what was expected. I kept it around in a local hard-drive and when I started my undergrad, I realized I needed to make a github and start some projects. I initially wanted to just add a repo for the current code I had but it wasn’t really well written…
So I decided to abstract it. The more I abstracted it, the more I realized I was moving towards a game engine. Eventually I took a pause but I got an SDE intership interview that wanted me to present a project so I crunched JEngine during my winter break.
Classic snake to full game engine pipeline 🤣