At some point you realise that you need to let go of some things. Dune 2 – The Maker is such a thing.
I’d like to thank everyone who has played the demo’s, and sent me some feedback.
Its time to move on.
Goodbye and all the best,
(If you think I am wrong, don’t hesitate to fork it and release versions of your own, I don’t mind at all)
With Dune 2 – The Maker, we strongly believe the community is the driving force behind this project. We have tons of ideas but we can’t go anywhere near them without you.
Since our last update, we had quite a lot of help from our community member Koijirion. And he had great arguments to switch from SDL to SFML and had some other good suggestions. So we did follow up, accepted his help (of course!). I think this is a great example how the community has influence on this project and how we can make it better by sharing our knowledge and ideas.
Since the last update, in a nutshell, here is what we have done so far:
- a total switch from SDL 1.2 to SFML 2.1
- gained a 20-100x performance boost (ie ~ 40 fps (sdl) versus to 4K (sfml) fps)
- a much easier to set-up project using CMake (guarenteed to work on OS X, Linux. Not yet tested on Windows; who wants to help out with this?)
- works on the ability to use a console (like you have in Quake for instance) – see this pull request in progress
- collision detection
- better movement code compared to SDL version
The infantry feature is paused a bit, but will be resumed shortly. If you want to know what we want to do (or are doing), just visit our new and public Trello board.
For our first release, we aim at a playable version where two players have units to eliminate each other. Very easy step, but it will involve quite some technical challenges. For now however, we are working on the engine basics, which evolved very nicely since our very recent (and quite a lot) additions from Kojirion. Thanks again!
Want to be part of this? You’re welcome, and contributing is easy; you can star/follow/fork our project at github. Create a feature branch, commit, push and you’re on your way.
If you are not sure yet how you can contribute, but have some awesome ideas? Just join our IRC channel (details below) and share them (you can also create forum posts, email us, etc).
IRC: Join us at channel #d2tm on irc.boxbox.org
But we’re having fun doing so.
We now worked on moving around units, using a vector. This is needed because the infantry will not always move in straight lines (diagonal, horizontal, or vertical). Now we can move around using a ‘direction’. Next up is working on the collision detection with infantry on cells (now infantry moves through everything).
… that Dune has the most intriguing universe ever created.
… that Dune 2 is the coolest game ever made with the greatest impact on its genre.
… it is possible to make D2TM a RTS which has all the goodness of today’s RTS’s and yet keeps the feeling you had in the days of the original Dune 2.
… playing against other humans/AI is more fun than the campaign missions
… there is enough creativity around (in you?) that can make D2TM even better.
… with every contribution, D2TM grows stronger, better and more fun.
… D2TM should be a project of the community, not of a few authors.
… if you want to contribute, don’t hesitate. Be creative, there is always something. (for example: add ideas to the forum for instance?)
… if you’re a coder and you want to contribute, just head to the Github repo, fork it, and start submitting pull requests. (every little change helps!)
… with your help, we can definitely make D2TM rock again!
As you can see on this page, it has been a long while since an update has come about development on Dune 2 – The Maker. The latest news is from a multi-os version, written in Java, which basically only has some viewports and scrolling.
And then it was quiet.
I think the real challenge with writing software in your spare time, is to find a motivation that lasts longer than a few days. And back then I think the motivation quickly ran out when real features needed to be built, as they require time and they are huge. Roughly said you’re chewing more then you can handle in one evening and basically get no results from some nights of coding (other than some refactoring, which is only satisfying to some level).
So before I wanted to take another attempt, I wanted to know how I could get myself more motivated so I can keep doing this. Well, I believe I have found a way which is very simple and yet very hard to do: Keep it small. Every night I try to deliver something of value to this project. It is a finished task, or feature and if you would get it, compile it, and run it then it should be working software. (it may not be a full game, but it won’t be a broken version either).
In order to keep the source code stable, I consider the master branch as stable and use so called ‘feature branching’ to work on new features. Once a feature is complete it is being merged back into master.
I’ve been working on a new version of D2TM since a little while now (if you follow twitter, you already saw some messages). And I am glad to say we are working on a version, steadily but surely.
If you want to know what is possible already, and how things are going, just follow us on twitter or check out the source code yourself. It is very easy to contribute!
The past weeks where very, very busy for this project.
Since my last post about the ‘time issue’, I got myself motivated enough to spend more time (read, getting less sleep) on the game and see if I could make anything out of the existing codebase. I was wondering why my motivation was so low, and the reason is simple: Refactoring all the time, without making ‘real progres’ is very de-motivating. Especially since the game was so broken already, that it would require a major amount of effort to get it working again. Then again, it would be done in a rush, and that makes you want to refactor further along the road.
To be blunt, it was a dead end.
So what to do then? Rewriting, again? Sure why not. But not from scratch using SDL as I tried before some while back, but instead try to get out the minimals of the old source code, and see if I could make anything from there. It would be a waste to completely disbandon the code that has been written over the past 10 years.
I spent a week orso doing this. Along the way Arjen joined the process and we where talking about what would be good for a game in terms of code design. We built a little engine using a viewport on a map with pixel-perfect scrolling. After that we wanted to refactor something, due the lack of good tooling for C++, it took us half an hour. We had more little frustrations along the way. We knew how fast it could be, because we both had enjoyed the pleasentness of IntelliJ’s IDEA and the world of Java.
After the refactoring process, we both said “wish it could be done like in IntelliJ”. It happens to be that I had tried to write D2TM in Java a long time ago (somewhere in 2009 I tried a little bit). So I knew things could be done in Java. We quickly agreed to give it a shot.
We built the same engine (which took us a week orso) within an hour in Java.
We did not had to think much to decide we would go on with Java instead of C++.
The project is open source, you can grab the source code from here.
Tonight, we realised a multi-module project that knows three concepts:
- The concept of an “engine”
- The concept of a “mod” (the game rules)
- The concept of a “game” (which brings the engine and mod together)
We can draw a map and spawn multiple “viewports” which basically are now “camera’s” watching the map. We can spawn unlimited amount of viewports and give them pixel perfect scrolling.
Because Arjen and I are working on the project together (a lot of time using TeamViewer) we keep each other motivated. I am very happy with the help from Arjen and I hope we can continue working like this for a long time. It is fun to do, and we get great results pretty fast.
Here is the result so far:
- you can run the game, spawn ‘viewports’ (random size, viewing random location at map). You can move what the viewports see at the same time with arrow keys.
Next thing we want to do is get the facing of tiles correct, so the terrain being drawn is looking prettier.
Btw, you can join our programming sessions for fun, or if you want to contribute in anyway. Just get TeamViewer, and stay tuned on our twitter channel. Once we broadcast a new Teamviewer meeting ID you can join in.
Curious how I work on D2TM, want to see how I do it. Perhaps want to give suggestions, or just want to lay back and wonder what the heck I’m doing. Well you can!
Make sure you follow the dune2themaker twitter. Now and then, when a new Development ‘session’ starts, you can join us by using teamviewer. It is a free tool (when used for community project, which this is) for collaboration. You can watch, and you could even participate!
I love working on this project.
In fact, I have so many ideas still, I would love to make them reality. But the truth is, life with two children, a full workweek and such is taking its toll. I do work on this project from time to time, but not at the frequence as I would love to. Rather I’d work on this project every week for a consistent amount of time.
Some of you are wondering if there is anything happening, and I really like that. It tells me you care about this project.
I was thinking about how I’d like to speed up project development, and basicly it means that when nothing changes the pace of the project will be slow for a long time.
If only I could take a day off from time to time to work dedicated on this project.
Taking unpaid leave for a day costs money (~ around $120 USD). And thats a bit too much to do on a frequent basis from my own pocket. So I use the spare time I have.
So I have decided to put up a donate button in order to give you the possibility to donate money, solely so I can buy some time off for this.
Even when nobody donates I will continue on this project. But it would really help if you would donate (even just a little). To give you an idea:
~ $120 USD equals one day of unpaid leave.
~ $60 USD equals half a day of unpaid leave.
~ $15 USD equals an hour of unpaid leave.
Thank you for your support!
If you think there is nothing happening, you’re wrong. I have decided, after much thinking, to rewrite the engine. I will use a different library and I will try my best with makefiles (although my experience with them is virtually zero with them. I am too spoiled with Ant/Maven in Java ;)).