Jump to content
  • 0

How do i get into modding aurora?


Nanako

Question

Posted

I have a great interest in improving things, as can probably be seen from my many suggestion threads. I also have considerable coding and photoshop talents from working in a variety of other engines and environments. I've considered submitting a developer application, but held off because i don't know much about byond specifically. I figure i should trry to learn and submit a few things so i'd have something to show, to back that up..


So, lots of questions come to mind:

1. What's the general setup for modding, coding and testing SS13? Is there a guide for setting up the development environment? What tools and editors are used?

2. What languages is our code written in? I'm mainly interested in in-engine stuff, not web services. I've seen mention of needing a PHP developer in the past. Is PHP used for things within the engine?

3. Where can i find the art assets? What formats and resolutions are recommended for various sorts of sprites?


I have a few sprite ideas i'd like to do and submit first of all


I'll probably have a ton more questions once i get deeper into things, so i may have lots more to ask in this thread later. but that should generate some lengthy answers for now.

12 answers to this question

Recommended Posts

  • 0
Posted

Your first step is to pick up the Dream Maker software(probably already installed, just use the little gear on the beyond pager or look around your BYOND directory) . This is an IDE, it also contains the software used to make the sprites, animated or otherwise. As for the language, it seems to be a proprietary language, but it'll be familiar if you've ever worked with Java, c++ or any thing else object oriented really. The sprites are all 32x32, no idea what the frame limit is for animated sprites. As far as I know, Dream Maker will only let you use the .dmi format for sprites.


Then, pull down the latest Aurora from github here: https://github.com/Aurorastation/Aurora.3


It'll take a little fiddling and reading to figure out how to get compiling and running to work correctly, I honestly can't remember what I had to do at this point, I'm sure one of the coders would know precisely.

  • 0
Posted

Number one can be answered through even the most casually of google-searches, and I'd recommend you start there before you start here. The need for a PHP developer is almost purely for web-based services, and all assets for our current codebase (including art assets) can be found on the github page; https://github.com/Aurorastation/Aurora.3 All standard one-tile sprites are 32x32 increments. Turf sprites that extend over multiple tiles will still be 32x32, but occupy distinct instances. Mob sprites that extend over multiple tiles need to be in increments of 32. (32x32, 32x64, 64x64, etc)

  • 0
Posted

I'm going to ask a couple questions, which should help me answer yours: How familiar are you with coding/programming in general? How familiar are you with using github or version control software in general?

  • 0
Posted
All standard one-tile sprites are 32x32 increments.

hmm, not quite getting what you mean here, isn't it typical to double these things at each step?


I'm curious about the resolution of the sleeper bed, for example:

XQqp6Ky.png

what's the resolution of this? no way its 32^2

looks more like 256 to me?


am i to understand that sprites can have variable resolutions, as long as they stick to those increments? Can item sprites be made as detailed as desired (technically speaking, not a matter of policy)

  • 0
Posted
I'm going to ask a couple questions, which should help me answer yours: How familiar are you with coding/programming in general? How familiar are you with using github or version control software in general?

recently ive mostly worked with unity engine and C#. in the past ive worked with lsl and as3 extensively, and smaller doses of html and PHP. I've been coding on and off in some form for about nine years, pretty familiar with some of the workings of object oriented language. i'd say my coding skill is journeyman, moderate.


Version control software, i understand the principles, but have only actually used it once, i worked as part of a small team on a civ IV mod, we had a tortoise svn server run by one of the team members, i was making lots of commits almost every day in the couple of months i worked with them. i was on that team as an artist so it was largely xml and assets i was committing.

  • 0
Posted
All standard one-tile sprites are 32x32 increments.

hmm, not quite getting what you mean here, isn't it typical to double these things at each step?


I'm curious about the resolution of the sleeper bed, for example:

XQqp6Ky.png

what's the resolution of this? no way its 32^2

looks more like 256 to me?


am i to understand that sprites can have variable resolutions, as long as they stick to those increments? Can item sprites be made as detailed as desired (technically speaking, not a matter of policy)

 

The sprite looks bigger than 32x32 because Byond 'zooms in' to fill the screen by default. I forget which menu it is /exactly/, but there's a dropdown menu at the top for changing the resolution/zoom/etc.

 

I'm going to ask a couple questions, which should help me answer yours: How familiar are you with coding/programming in general? How familiar are you with using github or version control software in general?

recently ive mostly worked with unity engine and C#. in the past ive worked with lsl and as3 extensively, and smaller doses of html and PHP. I've been coding on and off in some form for about nine years, pretty familiar with some of the workings of object oriented language. i'd say my coding skill is journeyman, moderate.


Version control software, i understand the principles, but have only actually used it once, i worked as part of a small team on a civ IV mod, we had a tortoise svn server run by one of the team members, i was making lots of commits almost every day in the couple of months i worked with them. i was on that team as an artist so it was largely xml and assets i was committing.

 

Alright, so it shouldn't be too difficult to get into working on this. I'd get with Skull132 to have him show you the way things are usually/preferred to be done when making changes and proposing them to the main fork.


Most, if not all, sprite files are in the icons/ folder (Ignore the 48x48 folder, it's not used), with the file extension .dmi. You'll want to open these with dream maker. Files with the extension .dm are code.

  • 0
Posted

The sprite looks bigger than 32x32 because Byond 'zooms in' to fill the screen by default. I forget which menu it is /exactly/, but there's a dropdown menu at the top for changing the resolution/zoom/etc.

A miscommunication here. I'm talking about the level of detail, not the size. The soft shading on that, and highlighted edges of the glass parts, couldn't be done with low resolution. I'm well aware that image resolution, and visible area on screen are not necessarily related

 

Alright, so it shouldn't be too difficult to get into working on this. I'd get with Skull132 to have him show you the way things are usually/preferred to be done when making changes and proposing them to the main fork.


Most, if not all, sprite files are in the icons/ folder (Ignore the 48x48 folder, it's not used), with the file extension .dmi. You'll want to open these with dream maker. Files with the extension .dm are code.

 

Right now, i'm trying to get it to compile, the compiler throws four errors, two each of two types

 

code\__HELPERS\text.dm:186:error: replacetext: invalid proc name: reserved word
code\__HELPERS\text.dm:189:error: replacetextEx: invalid proc name: reserved word
code\game\machinery\computer\supply.dm:315:error: replacetext: expected 3 to 5 arguments (found 1)
code\game\machinery\computer\supply.dm:111:error: replacetext: expected 3 to 5 arguments (found 1)
baystation12.dmb - 4 errors, 0 warnings (4/19/16 1:02 pm)

 

So first of all

/proc/replacetext(text, find, replacement)
return list2text(text2list(text, find), replacement)

/proc/replacetextEx(text, find, replacement)
return list2text(text2listEx(text, find), replacement)

I dont see anything wrong here, with my admittedly tiny knowledge of this language. It looks like these functions have just been given names that are reserved words. Does this mean they've been defined elsewhere and/or recently become reserved in some code sync? I can't see how this would have worked until now unless some recent change has broken it


The other issue is within the code that generates supply request forms

 

var/obj/item/weapon/paper/reqform = new /obj/item/weapon/paper(loc)
	reqform.name = "Requisition Form - [P.name]"
	reqform.info += "<h3>[station_name] Supply Requisition Form</h3><hr>"
	reqform.info += "INDEX: #[supply_controller.ordernum]<br>"
	reqform.info += "REQUESTED BY: [idname]<br>"
	reqform.info += "RANK: [idrank]<br>"
	reqform.info += "REASON: [reason]<br>"
	reqform.info += "SUPPLY CRATE TYPE: [P.name]<br>"
	reqform.info += "ACCESS RESTRICTION: [replacetext(get_access_desc(P.access))]<br>"
	reqform.info += "CONTENTS:<br>"
	reqform.info += P.manifest
	reqform.info += "<hr>"
	reqform.info += "STAMP BELOW TO APPROVE THIS REQUISITION:<br>"

 

The issue is the call to replacetext. It's invalid because only one argument, a single string, is passed. As far as i can see there's no reason to even call replacetext here, it's just defining a string containing a variable, and i can fix it by just changing that line to

 

reqform.info += "ACCESS RESTRICTION: [get_access_desc(P.access)]<br>"

 

I can't actually compile to test whether this works though, because of the reserved word error. i'd need to know how that situation came about, to know what to do to fix it.




So how does everyone keep in touch and help each other? Is there a developer subforum for asking for help when stuff won't compile? Or does everyone use discord/IRC and pastebin, or some similar setup? I can't imagine it being optimal to depend on skull personally being around for every time i need help

  • 0
Posted

Alright now i'm really curious about sprites, ive opened up a couple of DMI files. They look like images, but when they open in dream maker, it's as a series of disconnected and individually selectable icons.


What exactly is a DMI file? Is it a source image with some extra data on how to cut it into icons?

Is it just an image and the cutting is done on load according to whitespace or somesuch?

Or is it a database and the file browser image is just a preview generated somehow?

  • 0
Posted

[something].dmi is an icon file. A batch of a single sprite. Good place to start if you plan to engage in coding.


One .dmi may consist of multiple batches for uniform. Or character facing a certain Cardinal direction.


If you read Byond Developer Help, you will understand.

  • 0
Posted

As a coder managing DM, my Bible. (The DM reference document. Every language has one, they are important for coders.)

As a student, my guidebook. (The DM guide. Though it does not speak much about spriting.)


Questions posed and short answers:

What's a .dmi? A repository of images, so to speak. Within a .dmi file you can have multiple sprites, and these sprites may further have different directions and animation states. A .dmi is really a container format, which makes the images easily accessible from within the code. Not only do you have to pay attention to what .dmi file you're editing (icon var), you will also have to pay attention to what sprite you're editing (icon_state var). While there are ways to manipulate a .dmi file purely on a code basis (as is possible with any image format), doing so is ill-advised unless you have a set goal. Your best bet is to use DreamMaker to manage them. You can create an image in a compatible format with other software (common formats are supported, such as .png, .jpg, etcetera), and then import them with DreamMaker.


.dmi specs? A .dmi is not innately 32x32. SS13 (at least our build) uses 32x32 as a standard, however. I think the biggest sprite a .dmi can contain is 256x256 pixels. Further more, there is a limit to how entries a .dmi can contain, but it's somewhere around 200+, and I forget.


Why's all the shit so big, it's not 32x32! The game upscales depending on your preference. Check top bar, "Icons", select your preference. I use 64x64. If you want to see true size, enable 32x32 and enjoy.


Why's my code not compiling? You're attempting to compile 509 version code on build 510. Downgrade, or await for the present dev cycle to end for us to be 510 compatible.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...