This past week we have been working on gameplay scripting through trigger objects. This will allow for more dynamic level designs with the ability for us to create simple puzzles, traps and events in game that break up the general gameplay. An example of this are gates are activated by proximity and can be locked open or shut by various conditions. On the fly we are able to create gates that only open once, lock behind the player, are activated by a switch or even when enemies in a room are killed. Gates can control the flow of a level as well as offer an opportunity for gameplay scripting to create unique and memorable situations. Invisible triggers are used in conjunction to design this functionality but the same kinds of interactions can also come from switches.
We have had the functionality of switches in the game for a while but only this week have we finalised them into a suitable aesthetic. Previously we toyed with buttons but the lever look better suits the Roman theme and also stands out visually as a gameplay object. A cool feature about this design is that they will snap to the ground or walls depending on how they were placed. Interestingly, these are also the most complex 3D objects in the game in terms of draw code due to the multiple parts and octagon ends!
In terms of gameplay, a point of difference in our game is that levers can be activated by weapons – meaning you can fire an arrow down a corridor to activate a switch.
Doors are similar to gates in terms of gating progress and either open when approached or require a key to open. In terms of visual communication, doors and their corresponding keys will always look the same (iron key for an iron door) to ensure that players immediately understand what they need to find. While these mechanics are fairly typical of a classic fps we are also aware that their overuse can become worn out. For this reason not all levels rely on these mechanics and their focus is to open up creative level designs where spaces can be recontextualised and reused. There are also secret push walls that can reveal hidden passages. Unlike other games, these are activated by proximity rather than a keypress as we don’t want to encourage the tedium of pressing A on every wall in the level.
These keys were modeled after various Roman key finds. Roman keys have a wide variety of shapes and sizes all because lock making was in its infancy. Roman locksmiths had not yet figured out what locks worked the best and which were harder to break into. The majority of historical examples don’t even look like keys! Here are the photographs our keys were modeled after:
We have also been developing a variety of levels in different styles to get a feel for the gameplay over longer sessions. These stages are turning out to be a lot of fun and should be something we talk about in future posts.
A unique aspect of this menu is that like the gameplay itself, the mouse control is along a single axis. In some ways this has made it easier to also offer keyboard as well as controller support as we don’t need to worry about a mouse cursor. At first we wanted all levels in one scrolling list but without a free mouse or scroll bar it felt weird. The next iteration was one long list of stages but too many items in a row looked a bit messy and ultimately would limit the number of levels to what would fit on the menu which would be a terrible idea. What we have decided to go with is an episode system – though we prefer to call them acts as it is more thematic as well as avoids any confusion with episodic releases.
For the background art we liked the idea of a burning Rome and experimented with a bunch of approaches. Originally we were going to go with a pre-rendered still (like the Age of Empires I title screen) but it distracted from the logo (which still needs some work on readability/contrast and the dagger. A painted look gives some balance to the rest of the game while conveying a strong mood. Three inspirations were the cd booklets you might find in metal albums – to emphasise a darker tone as well as the importance of individual tracks or in our case, levels. Second point of reference was intermission screens in old epics like Ben Hur and The Ten Commandments to evoke a sense of grandeur. And finally the third inspiration for the background images was Alphonse Muchas’s painting “Nero watching the burning of Rome” 1885-1886:
The image both has detail and an element of abstraction. A slight parallax on the background brings it all together and stops it feeling too static. Some more polish can be done but it is in a good place for now (the gif is a little cropped at the bottom, the actual spacing is much better).
The menu features our current logo as well as a cool spinning dagger as the selection icon (perhaps one of the daggers that was plummeted into Caesar himself?). The pugio is a dagger like blade carried by all Roman soldiers. Identifiable by its wide blade shape. A lot of pugiones are speculated to have doubled as mini digging and multi-tools but their importance to Roman soldiers is unknown; perhaps a final backup after a javlin and gladius were lost.
This piece is unfinished but is a style test of what we are aiming for with the menu music – the blending of darker metal with faux-ancient sounding instruments. The music in levels will be a lot more thrash-y with faster tempo so the menu is a good chance to take a breathe and set the scene. Here is the direction for the title screen so far:
The game has a pause screen! I have never coded one of these myself before and it ended up being easier than I thought. How it works is the game takes a screenshot of the game then deactivates all of the objects in the game except the a controller which draws the screen grab with a transparent black overlay. Right now it is just showing the game is paused but later might include a menu selection to resume and quit (there won’t be saving mid level). I find it whimsical that it looks like objects are frozen when really we are just looking at a screen grab!
Save Data and progression
I have been working on the save file system. Data is now tracked and encrypted with the framework in place for tracking level unlocks, best times and other statistics. One thing we have been debating is whether or not weapons should carry over from level to level. This would be in line with classic shooters and gives the player a good sense of progression as well as making ammo usage meaningful. On the other hand, starting each level without a weapon opens some interesting level design possibilities (only bow, or melee only stages). This also incentivises players to use the weapons they find instead of saving them. A disadvantage of this however is that secrets are less important and people may not like having to start from scratch every time. All of this can of course be balanced around but currently needs some more thought.
The featured image is some promotional art that Ivan unveiled this week – don’t forget you can check our development log over at TIGSource for smaller but more frequent updates!
A focus of our enemy design is that different units will stay relevant throughout, even into the late game. We don’t want to do recolours or higher health versions of the same types of enemies, instead difficulty will increase by the number of opponents as well as the unit composition of each encounter. With this in mind, even early game enemies can be deadly later on. One issue we were facing however was that early game units such as the archer become quite easy with the stronger weapons but we didn’t want to strengthen archers as they would be too powerful for new players. To solve this issue we have added a lower tier slinger to allow for early game ranged combat while enabling the archers to be stronger without throwing off the balance. We chose this enemy because it is less armored (lower hp) and in the game, will be shorter range and less precise than the Roman archer. The enemy was inspired by the historical use of auxiliary troops in the Roman military. These auxiliaries weren’t Roman citizens and would be paid considerably less than the Roman soldiers.
While a slinger’s inaccuracy, low health and insubstantial damage output make them fodder for Caesar’s bloodlust – larger cohorts have the potential to be more of a threat. Their AI spreads them out more than other units and their inaccuracy makes for widespread volleys of stones in greater numbers. This enemy is in line with the new weapon that we have been developing. Here are some renders Ivan did but you will have to wait for the next Weapon Wednesday for more details:
I posted earlier this week on our TIG forum devlog about experimenting with adding traps to the game. This perhaps breaks theme a little but at a stretch they could be found in ancient booby trapped tombs or even some of the more sadistic gladiator arenas. It will be good to have some elements to give levels more variety beyond combat. Inspiration comes largely from Tomb Raider 2 which had a number of devious, low poly dangers of a similar vein.
Spikes come in and out of walls. They can be activated by triggers as well as scripted to have different speeds and offsets to make simple movement puzzles.
Spinning blades can be pathed to travel around the room. Theses ones are quite basic but could later do things like circles or take only left turns etc.
A new one since last posting is fire that blasts out of the ground. That’s all for now but there are plenty more cool features in the works.
The idea for devlogs on our website are to collate all of the work that the team has done over the past week or two. To start things off, we began our TIG forum post which has had a number of updates so far. It is yet to be seen if we will settle there or try some other platforms but it has been good to start documenting the game.
Some may consider making what is essentially a FPS on a 2D plane as too much of a cutback but I find myself inspired by the simplicity of early games in this genre and the amount of content that can quickly be created for this kind of game. Early shooters of this style evolved quickly as technology advanced and I feel as though there is still a lot of design space that hasn’t yet been explored yet – Gun Godz being one of the few modern examples that interprets the space really well. In some ways it is more like designing a top down shooter except the player’s perspective is altered. It is interesting how even at this stage wall heights can give the perception of large spaces even though the gameplay is 2D.
All of the weapons (both player and enemy) use projectiles as opposed to a hitscan approach in the game to emphasise moving and dodging. Firing projectiles was causing some issues as the default collisions weren’t precise enough and the projectile would sometimes skip over objects if it were moving too fast. A script named collision_line_first (from gmlscripts.com) was extremely useful and is an easy way to check what object is hit first by checking a collision line between the projectile’s current position and its predicted position for the next step. The coordinates of the bullet can then be updated to allow it to stop right on the edge of an object which will be important for hit detection and effects.
The same scene as pictured above but from the view of the level editor. Stages will be created from a top down perspective as the game play is effectively two dimensional.
This image shows a bill boarding sprite test with 16 directions. This was one of the first challenges we faced – mapping a sprite sheet to a camera facing plane that would update the index based on the angle difference between the player and the enemy’s facing direction. While this example doesn’t show it, accounting for animation and different states also brings an extra layer of complexity to the system.
Combat and Enemies
Here is an early combat test with a number of soldiers attacking the player. We want the game to be fast paced and have a focus around small as well as large scale encounters. The AI shown below is for a basic melee enemy that won’t be too much of a challenge on its own but will be deadly in large groups. I will post more about enemy types later but the basic idea is that there won’t be too many varieties in the game but they will stay relevant throughout. This means there won’t be too much power creep in the weapons and even the weak enemies can be dangerous. Different group compositions will provide variety with clear strategies needed to defeat the more advanced opponents. They currently don’t collide with one another – partly because I haven’t coded it but I actually like how it allows them to move in really chaotic swarms. We have decided to forgo traditional health pick ups in favor of a bloodlust mechanic – killing will fill the bloodlust meter and once triggered, the player will increase speed and gain health from both hits and kills. The idea of this is to incentivise an aggressive playstyle where instead of hiding at low health, the player is forced to push forward. This also encourages a fast pace of play as the bloodlust meter depletes if the player hasn’t landed a hit recently (meaning playing passively is a huge disadvantage).
One consequence of this is that newer players may not be accustomed to playing aggressively and will find it hard to survive if they are unable to chain kills. Our way around this is by including civilians in the game. As a ruler of the people, Caesar has no ill will against the innocent and so the player will be faced with the moral question of whether or not to kill civilians to help chain kills, or take the harder path of only entering combat with soldiers. These units will also help to bring the environments to life and make levels feel more situated in real places.
We decided to make two varieties of the civilians so their placement would be a little less repetitive. They will also have some unique reactions to the player as well – some will flee or cower while others will cheer the player on – even after death Caesar had many loyal supporters!
If you would like to follow the development of our game on more platforms you can follow me on tumblr, Ivan or Matt on twitter.
We have started working on a new project titled Caesar’s Revenge.
Julius Caesar, the great general, leader, politician and philanthropist, was assassinated by a greedy senate on the Ides of March, 44BC. History books tell us that this ordeal would set in motion the end of the Roman Republic but what if the history books were wrong? What if after being tragically murdered by the senate, Caesar were resurrected by Cleopatra’s Egyptian magic to reap unrelenting vengeance against those who conspired against him?
Caesar’s Revenge is a retro fps inspired by games like Heretic, Wolfenstein 3D and Exhumed. The design is focused on being fasted-paced with an emphasis on constant movement and chaining kills. Slash, stab and shoot your way through iconic locales of the ancient world to cut down those who betrayed you. Bring the true fall of Rome.
The game still has a long way to go and we plan on posting updates each week as development continues!
Went to PAX Australia on the weekend. Played a lot of cool games and even got to show off DOGO a little.
I was also there for a panel talk about learning to make games which was a lot of fun and turned out to raise some really interesting discussions between education, industry and hobbyist game development.
Although it wasn’t my first time there, I would definitely go again – maybe with a full Pixel Barons booth?
In an ancient ritual of eclipse, a brutal and barbaric battle in conversion takes place. A battle for destiny and dominance in a harsh, primitive world, where heroism and passion are the highest virtues. Tides can shift in all battles, in a tireless storm of bravery and ascension.
DOGO is a strictly local-multiplayer, competitive platformer in which players compete in an ancient ritual to convert opposing cultures to their own alignment. Player characters are controlled as one entity, promoting skillful play and tactical precision amongst the chaos of the swarm.