Wednesday, March 30, 2016

New Feature: Boats

Navigate rivers and shoreline in your outrigger canoe.


Or take to the seas in your caravel.


Of course, a larger frigate is best for long ocean voyages; unless of course you can take to the skies...


Tech Talk:
  • There are currently four different water tiles, each representing a different water depth. 
  • Each tile graphic has a unique ID number.

  • The player icon is drawn at the center of the screen based on the tile ID number assigned to the player. As a result, the player icon could take the form of any graphic in the game's tile set. 
  • The tile IDs of the terrain (mountain, trees, etc) on the view screen are stored in an an array.
  • Map objects, such as boats, are stored in a separate array. The map objects array contains the tile ID of the object and the map x,y coordinates of the map object.

Boat Mechanics

Yes, Nox Archaist has boat mechanics. We call them shipwrights. And they'll even fix your -

Wait, no, different mechanics. The Foreman just reminded me I am supposed to talk about the technicals of how boats work.

When the graphics are drawn on the view screen, a loop looks through the tile IDs of each tile in the terrain screen array and draws the graphic associated with it.

After the terrain is drawn, another loop looks through the map objects array and if the map x,y coordinates of the object are located in the region of the map in view screen (determined by player map location), then the tile IDs stored in the map objects array is used to draw the appropriate shape on screen.



Pulling it together. (pull it together tight or the boat might sink)

A player is permitted to board a boat if there is a map object of type boat at the x,y map location of the player). When the player boards a boat, the player icon's tile ID is changed to the tile ID of the boat).

As the player moves, the x,y map location of the boat is updated to match the player's x,y map location. Since the terrain and map objects are stored in a separate arrays, once the player (in boat form) moves, the terrain in the previous location reappears on the view screen. This multi-array setup creates some ability to stack tiles.






Monday, March 28, 2016

Why an Apple II game?

It was either this or hack Castle Wolfenstein and turn it into Castle Bovenstein, with cows playing the Nazis and the SS mooing when entering the room…

We decided that was entirely too silly. At least for now. Seriously though, our respects to Silas Warner; he created one of the truly great games of all time.

Now, about this project.

Nox Archaist is in some ways 20+ years in the making. The idea has been in various states of progress since I first completed Ultima III on our Apple II+ in the mid 1980s. After an in depth exploration into the many ways to fail at creating a tile map with a guy moving on it in Applesoft BASIC back in the early 1990s, plans for creating this game spent plenty of time on the back burner.

We feel that there is something inherently special about the classic RPG style which has been lost in modern games. While we enjoy playing modern games, it is a different experience.


After recently playing through some of the best classic Apple II RPGs we were still looking for more of this style of game. Since new game development on this platform is mostly non-existent we decided to lay off the Liebfraumilch for a while, dust off the plans for Operation Archaist that originated way back when, and make the damn thing ourselves.



We will soon post the full story of how the project got started, the challenges along the way, and a few classic blunders. Fortunately none as serious as getting involved in a land war in Asia or going in against a Sicilian when death is on the line. Those were avoided at all costs.


Update: click here for a blog post with more details on how the project got started. 


Sunday, March 27, 2016

New Feature: Swimming

kickstarter.noxarchasit.com

Players can wade into the surf and swim in deeper water. However, swim at your own risk!


While we want the player to have some ability to enter water, we expect ships to be very relevant in Nox Archaist.

On a side note, the ability to enter water came about as a result of experimenting with water animation. A glitch in the animation resulted in the player icon gradually sinking and disappearing completely!







Tech Talk:

We will try include a Tech Talk section with each future post to dive into the technical aspects of how the feature was implemented.

About the swimming feature...

Nox Archaist has a robust architecture for creating unique features relating to movement. All tile graphics shapes (i.e. water, grass, mountains, etc). have a unique ID number. For example, grass tiles are currently assigned the hexadecimal number $34. Mountains are assigned $00. 

There are currently 4 water tiles, each which represents a different depth ($88, $89, $8A, $8B). For example, the water tiles closest to land with the small white lines symbolizing cresting waves are the most shallow water, which we refer to as "surf".

When the player moves, a collision check is done to determine if the destination location has a tile ID which is impassible, such as mountain tile $00. 

Given this awareness that the game has of the tile IDs on the view screen, we can also trigger special effects when the player stands on or attempts to move to a tile of a particular type.

With these concepts in mind the implementation of swimming included the following:
  • How do we let the player go swimming?  By not telling the collision control system to block water tile IDs. By default all tile IDs are passable until we tell it otherwise.   
  • If tile ID = any water tile ID, then load the wading or swimming version of player icon (tile ID $99, $9A) into the player icon buffer.


kickstarter.noxarchasit.com

What the heck are you guys talking about??

Check out our lexicon page for definitions of some of the terms we use when describing the game and its technology.

6502 Workshop Lexicon



Saturday, March 26, 2016

State of the game: We’ve been writing code like it’s 1989

The most technically challenging part of developing the game is complete, though a lot of work is certainly ahead of us. 


We’ve created a fully functional tile graphics engine which is currently configured as an outside or “surface” map. A player can traverse the 128x128 tile map filled with diverse terrain including oceans, rivers, mountains, fields of short and tall grass, beach, and more! Adding additional tiles takes minutes due to the scalability built into the engine and the Apple graphics design tools we’ve created.


Watch for a future post about the Magic Scroll of Cheating! The graphics engine will be largely reusable for other parts of the game. For example, features such as towns and castles can be created with their own unique tile set and map. Of course we will include additional elements such as NPCs, merchants, and special events that occur at a specific place and time.

Under the Hood: Introduction to the Nuts and Bolts of Nox Archaist

This is the first post in a series that will get into some of the technical architecture of Nox Archaist, below you'll find some information on the system requirements and details relating to the design of the game.

Platform
  • Runs on any 128k Apple IIe or later system
  • Physical machines and modern emulators are supported
  • Current game testing is being done on a physical Apple IIe and in AppleWin


Design Details
  • Coded entirely in 6502 assembler with no construction sets used
  • Started in LISA, switched to cross assembler (SBASM) with automated dev process
  • Architecture supports over a thousand unique tiles
  • Single mode Hi-Res graphics in a tile-based architecture
  • Draw-draw animation with page flipping
  • Screen scrolling and page flipping for map movement
  • Custom bootloader with RWTS only DOS component loaded
  • All disk I/O via calls to RWTS



Wanna talk tech? Just ask!

I talk tech and I also talk turkey. I am happy to field any technical questions about the game, how it was made, etc. and will do my best to answer them. Feel free to drop us a line by posting to the blog or by email at mark@6502workshop.com.

We plan on releasing the source code to Nox Archaist in the future as well as hosting a code review on this site.



A closer look at Nox Archaist

Over the new few days we plan to introduce several features of Nox Archaist that are currently implemented. One of our goals is to create features unique to Apple II RPGs which fit in well with classic game features. 

We will introduce some of the unique features in our posts and also save some unique features for the beta or final release of Nox Archaistwhich we think are best discovered as a surprise. For example, the feature involving the whooping llama of - oops, never mind.