Times, trials, and turbulence.
Monthly Archives: March 2008
Progress has been moving along slowly but surely with the master server. As a recap, the master server will be a single instance app that will maintain a database of all player accounts, characters inside those accounts, and servers being run by players. Players will be able to log-in to the master server with their account credentials and view, join, and host games.
The master server itself is proving to be a fairly easy job, but the main work is on the client’s side, where the visual interface and logic for interacting with the master server will be done. The master server currently allows users to connect, create accounts, and log-in. My current task is doing the dialogs and networking work on the client’s end to allow players to perform these first-most tasks.
I’ve been restructuring a lot of the main game logic to better support the new ‘lobby’ interface, whereas I settled on having ‘Sessions’ of different types to accommodate this. A session is a fancy word that means that the player is either playing inside of a game, or inside the lobby system (finding a game or viewing characters), or even in the map editor. The game will be able to switch between sessions seamlessly, making for simpler transitions and, inside the code itself, a much nicer unification of data structures. In short, this will make it easy to implement transitions like going from the lobby into a game after clicking ‘Join’, or testing a map you’re working on in the map editor by switching from the ‘editor’ session to the ‘game’ session and loading that map.
Screenshots soon. 😉
I’m still working on getting the judges together to do the actual judging and scoring for the game compo entries, but hope to get things worked out very soon. I’m also trying to orchestrate getting the pizza quantities handled and delivered for the ‘Game Showcase & Final Meeting’ for the gamedev club at my uni. We like to get everyone together at the end of each term to show what we’ve been working on, and enjoy some pizza. I showed by voxel renderer last term, in November, but will be showing some stuff from Skirmish hopefully, like blowing up crates with the rocket launcher. Always a barrel of fun!
EDIT: I intentionally haven’t posted a download link to my compo entry yet — I’d like to wait until the judging is done and instead proffer a link to the entries/judging results so you can enjoy everyone’s game. 🙂
I’m just about to hit the bed, hard, but wanted to drop a quick entry in here. The 24-hour gamedev competition is over, and the judging will happen in the coming week. Below is a little screenshot from my entry before I collapse for the night. 🙂
And now is a time for rest. 39 hours without sleep has a way of creeping up on a fellow.
I’m just getting my stuff ready for the competition (mentioned in my last post) now. We’ll be taking over a computer lab in the Math Building (MC 2060 if anyone in UofW is reading ;)) for the next 24 hours or so. I’m planning on writing periodic mini-entries to myself as I go, and hopefully turn my experience into a mini-article afterwards.
Wish me luck!
Project Skirmish: The Master Server
Minus some minor grievances about the editor, Battleforge looks like it was rather well-received. I’ll be gradually working on tweaking things, fixing bugs, and general sprucing-up over the next while, but my main focus is now on the next big auxiliary component of the game: the master server.
Skirmish will function like many of the popular action games out there, whereas one main server will manage a large list of player-hosted servers, allowing players to search through these hosted games through one central access point. This presents the least bandwidth strain on myself, and doesn’t physically limit how many players could potentially be online at once.
The Master Server will act as a hub, of sorts. When Skirmish loads up, it will present the player with a login screen, which will establish a connection with the master server. After that, the player can create/delete/manage their Characters, refresh the listing of currently active games, customize their controls/settings, or even host games themselves. A chat feature might also be added, depending on the bandwidth load it presents.
The Master Server will be also written in Java, and will use a MySQL back-end to manage accounts, characters, servers, scores, and just about everything else. I’m finally putting the book I received at Christmas, Learning PHP & MySQL, even though I’m using the Java J/Connector MySQL driver rather than PHP. This is my first time delving into relational databases, but it’s been nothing short of an excellent learning experience. I’m very glad I narrowly chose this route instead of resorting to flat-files.
24-Hour GameDev Competition @ Waterloo
After a couple of weeks of planning, myself and one of the other UW GameDev Club executives have organized and launched a 24-hour gamedev competition at our university. It will be taking place this Friday at 8PM and run until Saturday at, you guessed it, 8PM. A theme will be announced before we begin, and judging will take place in the days thereafter.
I am supremely excited for what events unfold this Friday, and eager to see what games see completion by the end of the competition. I haven’t added a new finished game to my portfolio in nearly a year (gah, has it been that long?), so this is a golden opportunity.
We’ll be taking pictures of the entrants’ games as they are developed, as well as pictures of the entrants themselves as they grow more and more sleep deprived. I’m bringing a pillow just in case. We’ll be ordering pizza sometime part-way through, and generally be having a great ‘ol fun time like any crowd of gamedev-loving developers should. 🙂
Don’t forget your pillow!
You’ll have to take a moment to imagine me releasing a large sigh of relief. There you go. A little over two months of development time, and I can finally make the (formerly outrageous) claim the first release of Battleforge is ready to roll. It’s hard to imagine that all of this work was dedicated just to make a single facet of the larger whole of Skirmish happen. I can’t express my relief at now having this huge task behind me. 🙂
Thanks go out to Patrik, Dean, and Mike for their assistance in bug-hunting and testing during the development period. I can comfortably say that Battleforge runs splendidly on all 3 target platforms of Windows, Linux, and Mac.
What You Get
Remember that this is only the initial release of the editor. A fair amount of functionality has yet to be added, but near-full-fledged maps can certainly be created. Here’s what you can expect from this release of the editor:
- Four editing modes. You can add/remove/edit the map’s tiles, decals, props, and patches in full.
- Map Settings dialog. This dialog allows you to change the map’s name, author, description, and size.
- Saving, loading, and clearing. All three are implemented, and files are saved in such a manner that future versions will always be able to load older map formats.
What You Don’t Get …Yet
For a first release Battleforge is pretty close to being feature-complete, but a few important systems are excluded until a later release:
- Ambient Settings. These includes ambient lighting of the map, weather, and possibly ambient sound effects for the map.
- Light Mode. Light mode will allow you to add/remove/edit different types/coloured lights on the map.
- Mini-Map. A clickable mini-map to both display the overall image of the current map, and to allow fast navigation of the map.
- Documentation/Help. Aside from this journal entry, no documentation or other information on using Battleforge is included, currently.
Controls and Interface
I strove to make Battleforge feel intuitive to use, but naturally what one person defines as intuitive can oftentimes be awkward or unexpected for others. Since this release has no accompanying documentation, I’ll specify the controls here in short:
- Arrow keys move the camera around the map. Hold down SHIFT to increase the speed of movement.
- Left clicking props, decals, or patches selects them. Hold down the left mouse button and drag to select multiple objects at once. Holding down CTRL allows you to make single clicks to select/deselect objects.
- Dragging the left mouse button on objects will move them. Dragging the right mouse button (excluding patches) will rotate them.
- Props/decals/patches are placed on the map by first clicking on an object in the image palette in the sidebar. Hitting Escape or clicking in an empty area in the sidebar will cancel Placement Mode.
- You can change the ground texture by entering Patch Mode, selecting a texture, and then clicking on the “Set Texture as Ground” button under the image palette.
- In Tile Mode, tiles are placed with the left mouse button. The right mouse button removes the top-most layer of tiles, and holding down CTRL and the right mouse button will remove all layers of tiles in the selected area.
These are the main points, and should be enough to get the intrepid mapper going. 🙂
Launch Battleforge (finally!)
Battleforge currently uses Java Webstart technology for distribution. Click on the link below to launch.
If your web browser does not prompt you to open the .JNLP file with Java Webstart, then it may be due to several reasons:
- You don’t have Java 5.0 installed.
- Your system isn’t associating .JNLP files with Java Webstart. Look for a program named “javaws” in your Java JRE directory, which you can either use via the command-line to launch the JNLP file (save it locally), or set a file association on your system.
If you’re still having trouble, please be sure to let me know. I’d like to sort out any launching issues sooner rather than later.
Just a couple of screenshots from pretty little maps I started while testing/during development.
Naturally, feedback and support are what helps keeps the motivational juices flowing, and helps improve the game/editor. I’d really like to hear about your experiences with Battleforge and your suggestions and comments for improvement. Knowing what people like and don’t like goes a long way in improving the editor for future versions.
As always, a massive thanks to everyone who has been supporting Skirmish. This one’s for you guys. 🙂